2

我正在研究来自 Telerik 的模拟框架 JustMock。看起来还不错。有一个对我们来说非常有趣的特殊功能就是他们所说的 Future Mocking。基本上,您可以模拟在要测试的方法中创建的实例(我知道的错误代码)。

例如 :

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

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

我认为 TypeMock 有类似的功能。

我想知道是否有其他框架允许这样做?起订量?模拟?FakeItEasy?他们有这个功能吗?还有其他框架???

4

1 回答 1

6

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

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

注意:但请记住,后一种框架更适合无法使用依赖注入的紧密耦合遗留代码。由于框架类似于分析器的性质,使用这些框架进行的测试可能会更慢。如果您可以使用依赖注入并希望单元测试尽可能快,则传统框架更适合。

于 2012-05-04T18:20:54.367 回答