我不熟悉在.Net中使用Mock测试
我正在测试具有以下性质的金融交易:
int amt =20;
//sets all the props and func and returns a FinaceAccount.
//Note I did not SetUp the amt of the account.
var account =GetFinanceAccount()
//service layer to be tested
_financeService.tranx(account,amt);
//checks if the amt was added to the account.amt
//here the amt comes out same as that set in GetFinanceAccount.
Assert.AreEqual(account.amt ,amt)
我知道函数tranx正常工作,但测试存在问题。 关于.Net中的Mocking是否有任何好的参考资料
答案 0 :(得分:2)
这是因为,当您执行SetupGet时,您实际上是在说“当调用此属性时,始终返回此值”。你想要做的可能是“SetupProperty”,它使得模拟对象上的所有属性都表现为具有get / set行为的普通属性。
Mock<Account> mockAccount = new Mock<Account>();
mockAccount.SetupProperty(mock => mock.amt);
// Perhaps set a initial value
mockAccount.Object.amt = 10;
答案 1 :(得分:0)
我建议您将单元测试连接到visual studio转到属性并选择debug然后单击启动外部程序并选择nunit.exe然后在参数中添加测试项目调试映射中dll的完整路径。这将使您能够调试测试并逐步完成所有操作。现在你可以看到出了什么问题。