10

我几周前就开始了 TDD。我必须对充满非虚拟方法的 C# 代码进行单元测试,并且也没有太多接口。因此,在我研究了 RhinoMock 和 Moq 之后,代理解决方案是不够的:我需要的是隔离,这要归功于分析器。

根据我的阅读,我有 3 个选择:

  1. TypeMock Isolator,非常强大但也非常昂贵
    http://www.typemock.com/
  2. Telerik 的JustMock,旨在成为 TypeMock 的 TypeMock 的替代品,但测试版充满了错误
    http://www.telerik.com/products/mocking.aspx
  3. 来自 Microsoft Pex 的Moles,唯一的免费隔离解决方案,但绝对不是模拟框架,请参见此处

我需要易于配置的模拟。Moles 不提供高级的声明式验证功能,自己做这件事很痛苦。

TypeMock 是一个很好的解决方案,但对于我真正需要的东西来说肯定有点多,而且我发现价格太高了。

JustMock 应该得到一些同意,但我没有找到很多参考资料。很遗憾,它的语法接近Moq,它应该是一个很好的过渡(我可以切换到具有更简洁代码的免费版本,例如,由于依赖注入)。但 TypeMock 于 2006 年推出,而 Justmock 在 2010 年仍处于测试阶段,存在明显的差距(尽管 Telerik 有很好的成绩)。第二季度修复错误于 2010 年 7 月发布。

问题: JustMock 的最新版本是否足够有效?他们是一些满意的用户吗?

(仅适用于接口/委托/非虚拟方法的良好免费参考:)
http://www.ayende.com/projects/rhino-mocks.aspx
http://code.google.com/p/moq/
http://www.nmock.org/

4

3 回答 3

7

[冗余全面披露:我为 Telerik 工作。]

专注于 JustMock,我想你会发现最新版本是一个非常强大的模拟工具,在核心模拟体验方面几乎没有已知的错误。Telerik 的方法一直专注于使模拟更容易(通过简单的 API + 与其他 Telerik 工具的集成,如 JustCode)和更易于访问(免费版本 + 低商业许可成本)。

虽然 Telerik 对模拟游戏来说相对较新,但实际上这对我们的方法很有好处,因为它能够在第一时间做所有事情,没有过时的遗留模式来混乱 API 或文档。

正如您所注意到的,一个关键优势是JustMock 可免费使用(用于模拟接口/委托/非虚拟方法)。如果您随后需要能够模拟需要分析器的项目,这是对商业版本功能的简单升级。相同的 API。相同的工具。分析器的功能更强大。

最好的办法是试一试。http://www.telerik.com/justmock

您还可以在 Telerik TV 上查看最近录制的以 JustMock 为特色的网络研讨会,以查看当前版本(2011 年第一季度)的运行情况:http: //tv.telerik.com/watch/telerik/test-drive-your-code-with-justmock

希望有帮助。

于 2011-04-26T15:47:21.143 回答
4

完全披露,我是 Telerik 内部人员,所以我的意见可能有些主观,但这并不能改变 JustMock 是一款好产品的事实。

我确实在 JustMock 测试版的时候使用过它,而作为你,我认为它有问题,所以当时我并没有过多关注它。但今年一月我看到了 JustMock 的演示文稿,我很喜欢它。我在一些宠物项目中使用了它,我对此非常满意。下一步将在生产中使用它,但我认为它不会产生任何问题。

最好的问候,蒂比

于 2011-04-26T15:41:02.000 回答
2

Just Mock 有两种选择,免费和付费。它们是相同的产品;免费版本只是内置了一些限制。虽然 Just Mock 确实是一个年轻的产品,但它背后确实有 Telerik 的全部重量。

两个版本都允许使用 fluent API。而且因为产品共享他们的代码库,从免费到付费的转变是无痛的。而且,如果您过去使用过 Telerik 的任何产品,您就会知道,他们的支持和社区论坛是首屈一指的。更重要的是,即使您只使用免费版本,您也可以完全使用社区论坛。

——斯图尔特

于 2011-04-29T14:02:09.580 回答