期望一个方法

本文关键字:一个 方法 期望 | 更新日期: 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");