RhinoMocks - Указание возврата для функций, вызываемых позже - PullRequest
1 голос
/ 22 января 2010

Использование RhinoMocks - как я могу сказать «всякий раз, когда какая-то функция вызывается с этого момента, она должна возвращать некоторое значение».

Я бы хотел сказать что-то вроде этого:

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

И затем - когда функция AddNumbers вызывается с 1 и 2 - она ​​возвращает 3. Т.е. Я хочу определить это заранее, а затем вызвать функцию. Причина в том, что я зависел от этого поведения для моего макета, который внедряется в другой класс - который снова вызовет функцию AddNumbers.

1 Ответ

1 голос
/ 22 января 2010

Примерно так:

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);
...