未来嘲弄嘲笑框架中的概念

pdi*_*ddy 2 .net c# mocking

我正在研究JustMock来自Telerik的模拟框架.看起来很不错.我们真正感兴趣的一个特殊功能就是他们所谓的Future Mocking.基本上你可以模拟在你想要测试的方法中创建的实例(我知道错误的代码).

例如 :

public void foo()
{
    var service = new MyService();
    service.DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

因此,此功能将允许模拟在foo()方法中使用的MyService实例.

我认为TypeMock具有类似的功能.

我想知道是否有其他框架允许这个?起订量?NMock?FakeItEasy?他们有这个功能吗?任何其他框架???

Mat*_*att 6

像你提到的传统框架(Moq,NMock,FakeItEasy)基于松散耦合的生产代码工作.创建方法内的依赖性(而不是在它传递通过一个参数或类构造函数)使得它使得用于注射假货(存根或嘲笑)接缝将是不可能的.

JustMock和TypeMock使用探查器API(IIRC)绕过这个来拦截和绕开代码.执行此操作的另一个框架是Miscosoft Moles,很快将在Visual Studio 11中命名为Fakes.

注意:请记住,后面的框架更适合于紧密耦合的遗留代码,在这些代码中您不能使用依赖注入.由于框架的类似分析器的性质的开销,使用这些框架的测试可能会更慢.如果您可以使用依赖注入并希望单元测试尽可能快,则传统框架更适合.