Moq和Rhino.mocks有什么功能?

时间:2009-03-27 17:42:13

标签: mocking rhino-mocks moq typemock nmock2

我无法找到Moq和Rhino的特定功能比较。所有问题都是“你更喜欢哪些以及为什么”,或者“这里是你如何在犀牛中进行简单的模拟以及如何在moq中完成”。

我无法在任何地方找到深刻的比较。我知道语法上的差异,我不是在寻找答案。 我正在寻找能力比较 。例如:

  • Rhino的Expect.On()用于线程化 嘲讽。 Moq可以这样做吗?

  • 多嘲讽怎么样? (实现多个接口 一个模拟)。 Moq可以这样做吗?

  • 我相信Moq现在可以模拟受保护的成员。犀牛可以这样做吗?

编辑:我最后还查看了其他一些.Net框架。

5 个答案:

答案 0 :(得分:88)

感谢那些在过去几周内做出回应的人。我最后写了一篇关于我的研究结果的博客文章,因为我不得不做了很多挖掘,似乎我不得不总结一下,希望能帮助别人。我发布的图表组织了我的发现:

alt text

我在博客文章中提到的一个警告是,该图表对于检查功能非常有用,但大多数框架的真正优势在于它们的独特功能。由于易于使用的API,我最终选择了Moq。此外,所有信息都有错误和变更 - 如果您不同意图表上的内容,请发表评论。

答案 1 :(得分:2)

我无论如何都不是专家,但我相信Rhino添加了一些Moq语法,因此学习曲线已经降低到你对MoQ的期望。我在测试中都使用过,而且一些语法几乎相同。我最初会使用MoQ,因为它更容易,但随后我的花蕾向我展示了最新的更新以及它们的相似程度。只是让你知道。

答案 2 :(得分:1)

Rhino有GetArgumentsForCallsMadeOn(),在某些情况下,IMO可以更容易地验证参数。

答案 3 :(得分:0)

为了完整起见,我会注意到CodePlex上现在有NMock3。它可以从NMock2轻松迁移,只需用对NMock3.dll的引用替换对NMock2.dll的引用。它增加了类型安全性和对重构的支持。

答案 4 :(得分:-1)

我可能会在其中添加“行为验证”。这似乎是Moq最大的限制,Rhino(不确定其他人)没有问题。