我找不到Moq和Rhino的特定功能比较.所有的问题都是"你更喜欢哪些以及为什么",或者"这里是你如何在犀牛中进行简单的模拟以及如何在moq中完成".
我无法在任何地方找到深刻的比较.我知道语法上的差异,我不是在寻找答案. 我正在寻找能力比较.例如:
Rhino有Expect.On()用于线程模拟.Moq可以这样做吗?
那么多模拟(用一个模拟实现多个接口).Moq可以这样做吗?
我相信Moq现在可以模拟受保护的成员.犀牛可以这样做吗?
编辑:我最后还看了一些其他.Net框架.
我需要为读取xml文件并解析其内容的类编写单元测试.我该如何模拟文件读取?因为测试的所有内容都应该是针对读取文件的.
我在nUnit中使用nmock2.
谢谢
我有一个简短的问题,我在关于NMock2.0的文档中无法弄清楚.
我有一个名为Save()的函数,我想模拟出来.这将字符串ID作为参数,小数作为值.
我知道我可以编写这个来确保使用2个特定值调用Save():
Expect.Once.On(dao) _
.Method("Save").With(New Object() {"foo", 1})
Run Code Online (Sandbox Code Playgroud)
但是只有当"foo"和1通过时,这才会通过.我确实控制了值"foo",但对于第二个值,我不知道它会是什么; 或者我不关心测试它至少在这个特定测试中的价值.
我知道我可以写:
Expect.Once.On(dao) _
.Method("Save").WithAnyArguments()
Run Code Online (Sandbox Code Playgroud)
但这将允许我通过任何辩论; 因此,如果保存界面更改,稍后需要5个参数,我的测试仍将通过.
我怎样才能确保它只需要2个参数,并且它们的类型合适?
也许更重要的是 - 写这样的单元测试太脆了?也许我应该编码它以期待任何参数,所以每次重构我都不必回来改变那条线?我发现我使用大量模拟的测试用例非常脆弱,无论何时我重构我都要改变它们......也许我在这里使用模拟错误?这个东西还是很新的,所以任何建议都非常感谢.