RhinoMocks - 指定稍后调用的函数的返回值

时间:2010-01-21 21:07:01

标签: .net unit-testing mocking rhino-mocks

使用RhinoMocks - 我怎么能说“从现在开始调用某个函数 - 它应该返回一些值”。

我想说这样的话:

fakeCalculator.WhenCalled(factory => factory.AddNumbers(1, 2)).Return(3); 

然后 - 当使用1和2调用AddNumbers函数时 - 它将返回3. I.e。我想提前定义,然后触发该功能。原因是我依赖于这个行为为我的mock注入另一个类 - 它将再次调用AddNumbers函数。

1 个答案:

答案 0 :(得分:1)

这样的事情:

MockRepository mocks = new MockRepository();
IFactory factory = mocks.DynamicMock<IFactory>();

using(mocks.Record()) {
    factory.AddNumbers(1, 2);
    LastCall.Return(3);

    factory.AddNumbers(2, 3);
    LastCall.Return(5);
}

int result = factory.AddNumbers(1, 2);
Assert.AreEqual(3, result);

result = factory.AddNumbers(2, 3);
Assert.AreEqual(5, result);