22

我知道这是一个主观问题...

Typemock 为每位开发人员 799 美元。5 个开发人员的许可证是一笔不小的数目。如果这里有人使用 Typemock 并且考虑到有开源的模拟框架,那么值得花钱吗?为什么?

4

4 回答 4

24

在我们的项目中,我们有 12 个 Typemock 许可证,我们必须每年升级,但我相信我们花费的每一分钱(实际上是 øre)都是值得的。

为什么?Typemock Isolator 有一个重要优势:它不会(几乎)对您需要模拟的代码设置任何约束。私有构造函数?密封课?静态类?没问题 - 你可以使用 Typemock 隔离所有这些东西。

举个例子:你需要测试处理具有某些属性的 SqlException 的代码,你怎么能做到这一点?SqlException 是一个带有非公共构造函数的密封类。您可以使用各种解决方法,但只要您使用托管代码,就没有直接模拟 SqlException 的方法。

Typemock Isolator 将您的代码作为分析器拦截,它不受管理,因此它可以打开更强大的模拟。如果您正在处理某些产品(例如 SharePoint),那么 Isolator 是唯一可以处理它的框架,因为正如有人所说,SharePoint 只是一堆私有密封类。

话虽如此,Typemock Isolator 的强大功能要求开发人员更关心自己代码的可测试性。使用 Isolator 更容易编写不可测试的代码,并且仍然设法使用 Isolator 对其进行测试(我知道这听起来很矛盾)。但是假设你自己的代码是正确的,Typemock Isolator 是伪造第三方组件的宝贵工具,当我说“第三方”时,我还指的是来自微软的东西,而且这些东西并不总是容易测试的。

于 2010-06-08T08:26:56.073 回答
7

主观部分是您对使用 Typemock 将节省多少时间(以及因此,金钱)的分析。从开发人员一小时花费多少开始可能会有所帮助。100 美元?在这种情况下,Typemock 需要多长时间才能为您节省 8 小时的时间?

做出明智决定的唯一方法可能是获得评估许可证并进行一些实际测试,看看它节省了多少时间。

于 2010-06-07T20:29:51.250 回答
6

让我先说一下我在工作中经常使用 TypeMock,我认为它是一款很棒的产品,因为它可以帮助您使用非常干净的 API 测试大量无法测试的代码。

话虽如此,您可能想退后一步,问问自己开发人员是否正在编写良好的面向对象代码并遵循良好的实践,或者他们是否只是在编写需要重型工具和专业知识的邪恶代码(参见http: //googletesting.blogspot.com/2008/07/how-to-write-3v1l-untestable-code.html了解更多关于恶意代码的信息)。

如果我们的代码已经进化(即被重构)到我们不需要像 TypeMock Isolator 这样的工具来正确测试它的地步,我会非常高兴。

于 2012-05-19T08:27:21.050 回答
3

这可能不像您想要的那样客观的答案,因为我确实在那里工作,但这是我一直在研究的清单。

这是您在评估任何一个当前的隔离框架时可能想问自己的问题列表:http: //site.typemock.com/isolation-framework-checklist

于 2010-06-07T21:57:10.713 回答