У меня есть такой сценарий:
form = MockRepository.GenerateMock<IAddAddressForm>();
mediator = new AddAddressMediator(form);
Медиатор - это реальный объект, который должен тестировать и должен иметь возможность устанавливать значения для объекта формы.
Но единственный способ увидеть значения для объекта формы выглядит следующим образом:
form.Stub(x=>x.FirstName).Return(item.FirstName)
Я не хочу делать это в своем реальном коде.
Мне не хватает точки издевательств?
Stubs встроены в поддержку поведения свойств. В тех случаях, когда вы не используете заглушки, вы можете использовать метод PropertyBehaviour() для аналогичного эффекта.
Внутри медиатора вы должны обычно использовать объект form
- он не должен знать, что ему был передан поддельный объект.
Этот код:
form.Stub(x=>x.FirstName).Return(item.FirstName)
не должен находиться в вашем реальном объекте, но может быть частью вашего теста, чтобы настроить ожидания того, как вы будете использовать ваш макет.
Edit:
Из того, что вы предоставили, я не могу судить, "не хватает ли вы мошенничества". Основная цель состоит в том, чтобы обеспечить способ проверки кода, который имеет зависимости в изоляции от этих зависимостей. Взгляните на эссе Мартина Фаулера "" Mocks Are not Stubs "и раздел" Руководство по использованию " Документация Rhino Mocks.