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

时间:2012-05-04 18:12:13

标签: c# .net mocking

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

例如:

public void foo()
{
    var service = new MyService();
    service.DoSomething();
}

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

我认为TypeMock具有类似功能。

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

1 个答案:

答案 0 :(得分:6)

像你提到的传统框架(Moq,NMock,FakeItEasy)基于松散耦合的生产代码工作。在方法内创建依赖项(而不是通过参数或类构造函数传递它)会使得注入假(接收或模拟)的接缝不可能。

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

  

注意:请注意,后一个框架更好   适合于紧密耦合的遗留代码,您无法使用依赖注入。测试   由于这些框架,这些框架可能会变慢   来自框架的类似分析器的性质的开销。传统   如果您可以使用依赖注入并希望单元测试尽可能快,那么框架更适合。