7

我了解如何模拟接口或虚拟方法调用。但是像 TypeMock 这样的框架可以模拟框架中的所有内容。哪些 .NET 机制用于提供此类功能?

4

2 回答 2

8

例如,Typemock Isolator 使用 CLR分析器 API来拦截 .NET 调用并在运行时更改它们:

报价

Typemock Isolator 使用面向方面的编程设计来创建模拟方面。在内部,它使用 .NET Framework 分析器 API 来监视应用程序的执行。当 CLR 加载方法时,Typemock Isolator 检索 IL 并将其替换为检测的 IL 代码。Typemock Isolator 不会更改您的原始 IL 代码,它只是插入调用 Typemock Isolator 框架并返回模拟值的新代码。

于 2010-09-09T21:20:04.593 回答
0

Mock Everything 是 Mock 框架的功能之一。Mock Everything 简而言之就是模拟一个类中的所有东西,比如

  • 模拟依赖对象
  • 非虚拟方法
  • 密封类
  • 静态方法
  • 静态类
  • 非公开成员
  • 非公开类型

JustMockTypeMock都提供了这个功能。

您实际上可以查看一些开源模拟框架的源代码,例如 Moq 框架、Easy Mock、Rhino Mocks 等。

披露:请注意,提供的链接是我自己的网站

于 2013-10-09T08:04:15.797 回答