用构造函数模拟对象 - Rhino Mocks
问题描述:
如何用Rhino Mocks构造函数来模拟对象?用构造函数模拟对象 - Rhino Mocks
例如怎么会变成这样的对象被嘲笑......
public class Foo : IFoo
{
private IBar bar;
public Foo (IBar bar)
{
this.bar = bar
}
public DoSomeThingAwesome()
{
//awesomeness happens here
}
}
答
事你不嘲笑Foo
- 你嘲笑IFoo
。要测试Foo
本身,您可以模拟IBar
并将该模拟传递给构造函数。
你应该尽量避免的事情依赖于IFoo
明确建设的Foo
实例:他们应该要么如果IFoo
莫名其妙地给出一个工厂,或者有明确IFoo
传递给他们。
答
var myIFoo = MockRepository.GenerateStub<IFoo>();
,您可以检查迷死通过
myIFoo.AssertWasCalled(f => f.DoSomethingAwesome());
答
这是一段时间,因为我用犀牛,但我相信你可以这样做:
mockRespository.StrictMock<Foo>(ibarVariable)
但是它不会真的,除非所有Foo的成员的工作都是虚拟的。
好吧,现在你明白了。 :) – 2009-08-18 14:38:31