我有这样的情况:
form = MockRepository.GenerateMock<IAddAddressForm>();
mediator = new AddAddressMediator(form);
中介者是受测试的真实对象,需要能够为“ form”对象设置值。
但是我看到的唯一设置表单对象值的方法是这样的:
form.Stub(x=>x.FirstName).Return(item.FirstName)
我不想在我的真实代码中这样做。
我错过了模拟的重点吗?
最佳答案
Stubs内置了对财产行为的支持。如果您不使用存根,则可以使用PropertyBehaviour()方法达到类似的效果。
在调解器中,您应该正常使用form
对象-它不应该知道它已被传递给假对象。
这段代码:
form.Stub(x=>x.FirstName).Return(item.FirstName)
不应在您的真实对象中,而应作为测试的一部分,以建立有关如何使用模拟对象的期望。
编辑:
根据您提供的信息,我无法判断您是否“缺少模拟的要点”。基本目的是提供一种测试具有独立于这些依赖关系的依赖关系的代码的方法。查看Martin Fowler的文章“ Mocks Aren't Stubs”,以及Rhino Mocks documentation的用法指南部分。