我需要为新项目选择模拟框架。

这些框架的优点和缺点是什么?有对比表吗?

我知道 JustMock 处于 i beta 阶段,但它现在看起来非常好(与 TypeMock 非常相似)

编辑:我的鼹鼠女士呢?

有帮助吗?

解决方案

在有JustMock这个问题被问和答案可以在这里找到。 有一个很好的模拟框架比较 - 它没有JustMock然而,但你能看到的语法和每个.NET模拟框架的能力。

<强> RhinoMocks (和起订量)都可以自由使用,可以通过继承的类型创建虚假对象项目开源 - 这意味着它们不能伪造静态方法,结构体和密封类。

<强> Typemock隔离使用CLR探查到截距.NET呼叫和期间运行时间和罐假几乎任何改变它们。 Typemock也假的对象,你可以从测试不是“到达”,因为它们的生产代码中实例化。 有人称之为“黑魔术”,但其他人发现的能力假冒几乎任何东西 - 包括第三方库和遗留代码 - 必须

JustMock 是一个新的球员,现在只是处于测试阶段 - 它有一些Typemock隔离的,可以在不探查器API运行 - 在这种模式下,它就像RhinoMocks。 它是尚未被发现多少Typemock隔离功能是否真的有。现在看来,它的方向是正确的一个良好的开端,但它仍然有一定的距离,去之前它可能是一个有效的选择。

其他提示

我最近从切换的 RhinoMocks 起订量

两者具有类似能力但<强>起订量有很大的清洁器API

[免责声明 - 在我Telerik的工作]

刚想JustMock几点。它的API更类似于起订量的API比RhinoMocks',所以如果你熟悉起订量,你不应该有问题,学习JustMock。 我们已经尝试在JustMock做的更好是嘲讽例如连续通话时有一个更好的故事。 另外有人已经提到JustMock使得能够嘲笑上使用相同的起订量的语法静态类和方法/属性,密封类,非虚拟方法和属性等。 也由于这在JustMock有可能做局部嘲笑。

顺便说一句,“黑魔术”是德罗尔提到使用JustMock时,如果你直接引用的Telerik.CodeWeaver.Hook组装但不幸的是,这不是此刻的记录也是可能的。 即使有人想这样做,他可以打开一个支持票,我们将很高兴提供帮助。

希望这有助于。

另外结帐微软痣 - 用于.NET的隔离框架,允许与自定义委托替换任何.NET方法。

痣具有可用于商业项目,并在Visual Studio 2008和2010支持的版本。

另请参阅: https://stackoverflow.com/questions/37359/what-c​​-mocking-framework-to-use/2608634#2608634

我目前正在 Moq 中进行单元测试,我必须说它运行得非常好!- 改写:效果很好!我没有使用过你提到的任何其他模拟框架,所以我无法给你进行比较。但我可以说,我很高兴选择 Moq 作为我第一个尝试的模拟框架。lamda 表达式非常好,而且非常轻量级且对读者友好(大多数其他模拟框架中的记录/重放语法并没有真正提高可读性)

除此之外(这有点离题)我将在不久的将来使用 Ninject 作为 IoC 容器,并且这两个框架齐头并进。Ninject 也有 Lamda,它甚至为 Moq 提供自动模拟容器支持(使用扩展)。因此,如果您还计划使用 IoC 容器,您可以检查这个很棒的组合:]

我不会告诉你这是最好的becasue各有其利弊。我总是用犀牛嘲笑,因为它是免费的,有一个很大的社区周围,很容易找到任何帮助。

TypeMock不是免费的(I猜)。但是,如果你想例如测试与私人或静态类型的成员遗留代码TypeMock是巨大的。其他嘲讽框架不能做到这一点。缺点是,它不会强迫你写它有其他好处可测试的代码,只是可测性。

我不知道这样JustMock不能告诉你它是如何工作的。

我会建议你都尝试他们,并挑选与您觉得舒服联合国之一。但是,如果你需要测试的遗留代码,选择比TypeMock。

我希望别人会给你更多的细节。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top