我刚开始做测试驱动开发,我想知道RhinoMock,TypeMock之间的主要区别,和NUnit内置的嘲讽?
任何信息将不胜感激!
我刚开始做测试驱动开发,我想知道RhinoMock,TypeMock之间的主要区别,和NUnit内置的嘲讽?
任何信息将不胜感激!
TypeMock是一个商业产品(这意味着你必须为它付出),但可以让你嘲笑具体的对象 - 不像RhinoMocks / NUnit的/最小起订量只能嘲笑的接口/抽象类。 它是如何实现这一功能交界黑魔法,但它确实一些非常聪明的事情与CLR。
当你在你的项目中不使用多个接口使用库这可能是特别有用。 所以,你可以,例如,使用TypeMock嘲弄了LINQtoSQL的datacontext,或SharePoint对象。 但是,如果你正在使用TypeMock这是没有理由在您的应用程序设计不好 。
据我所知,除了轻微的语法差异,大部分嘲弄框架已经从旧记录/播放模式的路程。 通常情况下,可通过编写使用流利的接口预期设置你的嘲弄。
就个人而言,我只用MOQ和I <3它。
视频名为TDD -了解Mock对象由罗伊Osherove是在学习不同的嘲讽库的差异非常有帮助。 他没有在各个方面的很详细去,却足以让你明白。 我希望这有帮助。 罗伊也是TypeMock首席架构师,并在单元测试领域一个非常有影响力的人物。 我不能推荐一个人该视频足以谁愿意学习如何使用嘲讽,也了解图书馆的使用。
TypeMock和开源库的之间的主要区别在于,TypeMock使用由微软而不是提供的探查API 动态代理 。 这使得TypeMock嘲弄具体类和静态方法。 如果你不知道该分析器是什么,它是使用像JetBrain的dotTrace和展鹏的蚂蚁净分析器工具相同的API。 TypeMock只是使用API以不同的方式,以假(模拟),你告诉它什么。
@RichardOD,感谢您的提醒,他的著作“ 单元测试的艺术 ”进入其中视频没有更多的细节。 我自己的书,这是非常丰富的。
我还没有与这些人,但任何个人的经验...
我使用TypeMock所有的时间,发现它是一个非常强大的工具,可以提高我的单元测试的覆盖范围。 这是因为我与SharePoint工作,只有TypeMock可以允许我模拟出的SharePoint类 - 因为它们是具体的类,而不是接口。
嘲笑的SharePoint类是不可能的RhinoMock,起订量,NUnit的,因为等(我相信)他们需要的接口嘲笑的对象,而不是能够嘲笑实际的具体类。
如果你的代码不使用大量的接口,你不需要嘲弄具体类则TypeMock是有点贵,但你得到的权力,这是值得的。