Эквивалент EasyMock's niceMock для RhinoMocks - PullRequest
2 голосов
/ 27 января 2012

Фреймворк EasyMock (mocks for Java) имеет очень умный метод createNiceMock , это:

Создает фиктивный объект, который реализует данный интерфейс, проверка порядка отключенапо умолчанию, и фиктивный объект вернет 0, ноль или ложь для неожиданных вызовов.

Мне интересно о каком-то эквивалентном методе в среде Rhino Mocks, который может макетировать с 0, нулем или ложью для неожиданных вызовов (меня не интересует проверка заказа , но если это будет так, то все будет в порядке)

1 Ответ

0 голосов
/ 27 января 2012

Это характеристики динамического макета :

Dynamic Mock - Свободная семантика воспроизведения. Создано путем вызова DynamicMock ()

Свободная семантика воспроизведения : Все вызовы методов во время состояния воспроизведения принимаются. Если для данного метода нет специальной настройки обработки, возвращается ноль или ноль. Все ожидаемые методы должны быть вызваны, чтобы объект прошел проверку.

В более ранних версиях вы должны были явно создать один:

var mocks = new MockRepository();
var service = mocks.DynamicMock<IService>();

В настоящее время макеты по умолчанию считаются динамическими, если вы создаете их методом MockRepository.GenerateMock<T>(). Ожидания вызова заказа также не имеет значения . Предполагая, что мы получили ожидания, настроенные как показано ниже:

var dependency = MocksRepository.GenerateMock<IDependency>();
dependency.Expect(d => d.SecondMethod());
dependency.Expect(d => d.FirstMethod());

Проверенный код, как в примере ниже

public void DoWork()
{
    this.Dependency.FirstMethod();
    this.Dependency.SecondMethod();
    this.Dependency.ThirdMethod();
}

не приведет к сбою теста. Порядок не имеет значения, неожиданные вызовы игнорируются и возвращают значения по умолчанию.

...