我正在研究JustMock来自Telerik的模拟框架.看起来很不错.我们真正感兴趣的一个特殊功能就是他们所谓的Future Mocking.基本上你可以模拟在你想要测试的方法中创建的实例(我知道错误的代码).
例如 :
public void foo()
{
var service = new MyService();
service.DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
因此,此功能将允许模拟在foo()方法中使用的MyService实例.
我认为TypeMock具有类似的功能.
我想知道是否有其他框架允许这个?起订量?NMock?FakeItEasy?他们有这个功能吗?任何其他框架???
像你提到的传统框架(Moq,NMock,FakeItEasy)基于松散耦合的生产代码工作.创建方法内的依赖性(而不是在它传递通过一个参数或类构造函数)使得它使得用于注射假货(存根或嘲笑)接缝将是不可能的.
JustMock和TypeMock使用探查器API(IIRC)绕过这个来拦截和绕开代码.执行此操作的另一个框架是Miscosoft Moles,很快将在Visual Studio 11中命名为Fakes.
注意:请记住,后面的框架更适合于紧密耦合的遗留代码,在这些代码中您不能使用依赖注入.由于框架的类似分析器的性质的开销,使用这些框架的测试可能会更慢.如果您可以使用依赖注入并希望单元测试尽可能快,则传统框架更适合.