NMOCK3 - Expects.One.Method

时间:2014-07-10 20:10:18

标签: c# unit-testing nunit nmock

我是模拟和单元测试的新手。请参阅我在网上找到的以下代码:

[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,但我能找到的只是常见问题解答。

1 个答案:

答案 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");

FakeItEasy

A.CallTo(() => _viewMock.GetSourceAccount()).Returns("1234");