期望一个方法
本文关键字:一个 方法 期望 | 更新日期: 2023-09-27 18:12:18
一般来说,我是mock和单元测试的新手。请查看我在网上找到的代码:
[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,但我能找到的都是faq。
基于ExpectsOfT.cs源代码:
public IMethodSyntax<T> One
{
get
{
return Exactly(1);
}
}
可以得出结论,.One
指向的恰好是对给定方法的一个期望/调用。
我不熟悉mock和单元测试。
你学习NMock的原因是什么?在我看来,它不是很受欢迎,似乎也没有得到积极的发展。有些库有更好的文档和社区,例如Moq (大致相同的代码示例):
_viewMock.Setup(v => v.GetSourceAccount()).Returns("1234");
或 FakeItEasy
A.CallTo(() => _viewMock.GetSourceAccount()).Returns("1234");