Вопрос

У меня есть такой сценарий:

 form = MockRepository.GenerateMock<IAddAddressForm>();
 mediator = new AddAddressMediator(form);

Посредник — это реальный тестируемый объект, и он должен иметь возможность устанавливать значения для объекта «форма».

Но единственный способ установить значения для объекта формы, который я вижу, выглядит следующим образом:

  form.Stub(x=>x.FirstName).Return(item.FirstName)

Я не хочу делать это в своем реальном коде.

Я упускаю суть издевательств?

Это было полезно?

Решение

Незавершённые версии встроена поддержка поведения в отношении собственности.В тех случаях, когда вы не используете заглушки, вы можете использовать СвойствоПоведение() метод аналогичного эффекта.

В посреднике вы должны использовать form обычно объект - он не должен знать, что ему был передан поддельный объект.

Этот код:

form.Stub(x=>x.FirstName).Return(item.FirstName)

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

Редактировать:

Судя по тому, что вы предоставили, я не могу судить, «упускаете ли вы суть издевательств».Основная цель — предоставить способ тестирования кода, который имеет зависимости изолированно от этих зависимостей.Взгляните на эссе Мартина Фаулера «Моки — это не заглушки", а также раздел "Руководство по использованию" Документация Rhino Mocks.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top