在阅读了有关 Moles 的好东西后,我想在我们的一组工具中添加一个隔离框架来编写单元测试。
我们的应用程序在 Mono 下运行,因为它同时部署在 Linux 和 Windows 上,我似乎找不到支持 Mono 的框架。
我看过一些关于使用 Cecil 操作程序集的文章,但我很难找到我们可以实际使用的任何东西。
在阅读了有关 Moles 的好东西后,我想在我们的一组工具中添加一个隔离框架来编写单元测试。
我们的应用程序在 Mono 下运行,因为它同时部署在 Linux 和 Windows 上,我似乎找不到支持 Mono 的框架。
我看过一些关于使用 Cecil 操作程序集的文章,但我很难找到我们可以实际使用的任何东西。
看起来 Moles 使用 JIT 工作,所以我希望它与微软的实现非常紧密。
我在单声道上使用Moq取得了巨大的成功,只需很少的努力,就可以创建几乎任何类的代理实例并拦截几乎所有的方法调用。Moq的最新二进制版本对我来说在单声道上运行良好。
using Moq;
var mock = new Mock<MyClass> { CallBase = true };
mock.Setup( x => x.MyMethod() ).Returns ( 1 );
在使用 Moq 进行设置后,我通常更喜欢使用 NUnit,但您可以使用任何其他测试框架。
在您对@IanNorton 的答案添加评论时,TypeMock 很可能是您唯一的选择。