我是模拟和单元测试的新手。请参阅我在网上找到的以下代码:
[Test]
public void CanQueryViewUseAccountServiceToFundsTransfer()
{
_viewMock.Expects.One.Method(v => v.GetSourceAccount()).WillReturn("1234");
_viewMock.Expects.One.GetProperty(v => v.TargetAccount).WillReturn("9876");
_viewMock.Expects.One.GetProperty(v => v.TransferAmount).WillReturn(200.00m);
_serviceMock.Expects.Exactly(1).Method(s => s.TransferFunds(null, null, 0m)).With("1234", "9876", 200.00m);
_presenter.Transfer_Clicked();
_mocks.VerifyAllExpectationsHaveBeenMet();
}
我找不到任何解释以下行的内容的文档:
_viewMock.Expects.One.Method //Is this saying it is expecting one and only one function to be called?
_viewMock.Expects.One.GetProperty
我自己试图找到答案。例如,我在这里查看:http://nmock3.codeplex.com/documentation,但我能找到的只是常见问题解答。
答案 0 :(得分:1)
基于ExpectsOfT.cs的源代码:
public IMethodSyntax<T> One
{
get
{
return Exactly(1);
}
}
有人可能会得出一个结论:.One
指的是正好一个对给定方法的期望/调用。
我是模拟和单元测试的新手。
您是否正在使用NMock学习?到目前为止as I can see它不是很受欢迎,似乎没有积极开发。有一些库有更好的文档和社区,例如Moq(或多或少等效代码的样本):
_viewMock.Setup(v => v.GetSourceAccount()).Returns("1234");
A.CallTo(() => _viewMock.GetSourceAccount()).Returns("1234");