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