Как я могу установить значение для объекта Rhino Mocked?
-
18-09-2019 - |
Вопрос
У меня есть такой сценарий:
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.