我刚开始做测试驱动开发,我想知道 RhinoMock、TypeMock 和 NUnit 的内置模拟之间的主要区别?
任何信息将不胜感激!
最佳答案
TypeMock 是一种商业产品(这意味着您必须为此付费),但允许您模拟具体对象 - 不像 RhinoMocks/NUnit/MoQ 只能模拟接口(interface)/抽象类。它是如何实现这一点的,这是一种边缘黑魔法,但它用 CLR 做了一些非常聪明的事情。
当您在项目中使用不使用很多接口(interface)的库时,这可能特别有用。因此,例如,您可以使用 TypeMock 模拟 LINQtoSQL 数据上下文或 Sharepoint 对象。但是,如果您使用 TypeMock,则为 没有理由为您的应用程序中的糟糕设计提供借口 .
据我所知,除了细微的语法差异外,大多数模拟框架都已脱离旧的记录/播放模型。通常,您通过使用 Fluent 接口(interface)编写期望来设置模拟。
就个人而言,我只使用了 MoQ 并且我 <3 它。
关于unit-testing - RhinoMock vs. TypeMock vs. NUnit 的 Mocking?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1379230/