我的班级有这样的方法:
internal virtual Something CreateSomething(){...}
这样做是为了在测试中我可以存根CreateSomething()
返回一个模拟对象:
var something = ...; //some mock object
var t = MockRepository.GenerateStub<MyObject>();
t.Stub(x => x.CreateSomething()).Return(something);
这工作正常,但现在CreateSomething()
在类构造函数中调用,然后再调用它,所以当我存根方法时,我的对象已经创建。
是否有不涉及更改设计的解决方法,在构建时传递存根方法?如果不是,我可以考虑更改设计以使用构造注入(我相信你们中的一些人无论如何都渴望建议!)但我宁愿先看看 Rhino 是否支持这个用例。