为什么我会选择Moles作为我的模拟框架?

use*_*981 9 asp.net-mvc moq mocking pex-and-moles

我一直在寻找几个用于ASP.NET的Mocking框架,并遇到了Microsoft Moles.这似乎是微软研究团队的一部分,并且想知道如果有人在这里选择Moles而不是其他成熟的Mocking框架,如Moq.

Zer*_*nce 15

我实际上在同一测试项目中使用Moq Moles.两者都有优势,我会在适当的地方使用.一般来说,我使用Moq进行标准的AAA测试和验证,Moles是其他不可挽回的东西的"大枪",比如扩展方法调用等.

我喜欢这种安排,因为每个测试都可以尽可能简单明了,即使模拟设置可能因测试而异.

  • +1重要的一点是两者可以一起使用 - 你只需要仔细选择你的'第一手段'. (2认同)
  • 这是使用Moles进​​行的NUnit测试:http://github.com/fschwiet/Using_Moles_with_NUnit/commit/3cee34b48f1bffc4dd3fa707ac0b454df1070e73 (2认同)

Pel*_*eli 5

Moles旨在通过Pex的白盒分析有效地工作.所有其他模拟框架通常会产生大量开销.

Moles提供了一个简单的价值主张:用委托替换任何.NET方法.根据设计,Moles不提供任何API来表达其他框架所做的"验证".您可以自行决定此决定是否适合您.

如果您需要处理依赖于硬编码静态方法的(遗留)代码或具有内部构造函数的密封类型,Moles可以帮助您处理这些情况.

如果你有接口和很好的组件化代码,Moles还会生成苗条存根,即接口实现,可以与分析器一起使用.