Подтвердить что ты не робот

Как я могу заменить уже заявленный вызов заглушки другим разворотом?

Если у меня есть объект Rhino Mock, у которого уже есть объявленный на нем вызов заглушки следующим образом:

mockEmploymentService.Stub(x => x.GetEmployment(999)).Return(employment);

В любом случае я могу удалить этот вызов, чтобы заменить его чем-то другим, например:

mockEmploymentService.Stub(x => x.GetEmployment(999)).Return(null);

Я спрашиваю, что я хочу настроить некоторые общие макеты, которые будут использоваться в нескольких модульных тестах, а затем разрешить каждому unit test настраивать вызовы там, где это необходимо.

4b9b3361

Ответ 1

Я использую этот метод расширения, чтобы очистить поведение заглушек (или поведение + ожидания от mocks):

public static class RhinoExtensions
{
    /// <summary>
    /// Clears the behavior already recorded in a Rhino Mocks stub.
    /// </summary>
    public static void ClearBehavior<T>(this T stub)
    {
        stub.BackToRecord(BackToRecordOptions.All);
        stub.Replay();
    }
}

Я выбрал этот fooobar.com/questions/95031/..., или, возможно, это этот.

Ответ 2

Я использую методы Repeat.Once() или Repeat.Times(x), где он будет перемещаться по следующему ожидаемому завершению, когда предел достигнут.

Ответ 3

Я на самом деле использую заглушку в качестве метода, который получает ожидаемый доход, и он работает.

private void StubDoSomething(bool expected) => Dbs.Stub(x => x.DoSomething(Arg<string>.Is.Anything, Arg<object[]>.Is.Anything)).Return(expected);