我希望这个问题不是“有争议的”--我只是在问--这里是否有人购买了TypeMock,并对结果感到高兴(或不高兴)?
我们是一个小开发商店,只有12个开发人员,包括2开发经理。到目前为止,我们一直在使用NMock,但是有一些限制。我做过研究,并开始与TypeMock玩,我喜欢它。它是超级干净的语法,基本上允许您模拟所有东西,这对于遗留代码来说是很棒的。
问题是,我该如何向我的老板证明,一个API的每个许可证花费800-1200美元,这个API有4-5个完全免费的竞争对手?800-1200美元是每个许可证的红外或Telerik成本--而且肯定没有4-5开源可比的UI框架.这就是为什么我觉得它的价格有点高,尽管它是一个很棒的图书馆.
任何意见/经验都是非常感谢的。
编辑:在找到MOQ之后,我以为我爱上了它--直到我发现它在VB.NET中并不完全支持,因为VB缺少lambda子程序=( )。有人在VB.NET中使用MOQ吗?问题是,我们是一个混合商店-我们使用C#作为我们的客户关系管理开发和VB的其他一切。我们再次感谢您的指导,
编辑:嗯..。我在莫克找不到Isolate.WhenCalled()等价物.这里有什么帮助吗?我希望存根/模拟一个具体对象(而不是模拟对象)的ReadOnly属性.我可以很容易地用Isolate.WhenCalled和TM做这件事。如何与莫克?
发布于 2010-03-04 02:14:29
我从事的这个项目已经使用了TypeMock好几个月了。实际上,我们刚刚完成了对Moq (完全免费的Apache2.0许可的模拟框架)。的逐步淘汰,如果您还没有看到它,您肯定应该查看Moq。除了拥有我所见过的任何模拟工具中最直观的语法之外,您还可以获得编译时类型检查的好处。非常好。
在我看来,TypeMock比Moq有一个显著的好处。也就是说,它可以嘲笑任何东西。这包括密封类、非虚拟方法、具体类型以及几乎所有可以抛出的东西。如果您正在执行ASP.Net,并且取决于您的代码是如何构造的,它实际上可以使模拟类后面的ASP.Net代码成为一种可能。相当整洁。
然而,我们发现,如果您的代码结构良好,TypeMock的好处不会超过价格。此外,如果你不能用Moq来嘲弄某物,这可能意味着那里有一种气味。TypeMock允许您懒惰,我认为代码可能会因此而受到影响。Moq和其他类似的模拟框架(想到RhinoMocks)确实会让您在编写代码时考虑到代码,特别是在可测试性方面,但我认为这是一件好事:)此外,我们的团队在尝试将TypeMock部署到我们的持续集成服务器时遇到了一些麻烦。
长话短说,TypeMock是一个非常强大的工具。正如您所提到的,对于单元测试旧的遗留代码,没有更好的产品。但是,1000美元可以获得一个TypeMock许可证、OR、几个重发许可证、几乎10个TD.Net许可证、一个新的连续集成服务器或许多其他东西。我自己的经验表明,这是不值得的,但你的里程可能会有所不同!
发布于 2010-03-12 09:43:04
+1埃里克的回答-完全同意。
它类似于MSTest的私有访问机制--很有可能你把问题看错了。如果您最终不得不使用一些技术McGyvery来测试某件事情,那么有人做错了什么。
当然,接下来要说的是,在某些情况下,有些人已经做错了什么(是的,我在看着你,SharePoint,WebForms和朋友),而你确实需要做一些复杂的事情来处理目前的情况。
像这样的战斗往往是一个巨大的时间链接,回想起来很少会让你感觉良好。这类似于说:“噢,我肯定需要对此进行某种形式的测试,而唯一能起作用的是UI自动化,因为我们所处的位置。”沿着这条路走:
还有一件事- MSR有一个他们最近一直在拉皮条的Moles项目,这个项目和TM一样,也就是通过profiler重写运行时。对于那些认为他们想/需要在他们的军火库中拥有一些东西作为备份的人来说,可能有用,如果你真的在现实世界的场景中和Moq一起跑出了路,而你无法重构自己的方式,最终会在一个更好的地方结束。
https://stackoverflow.com/questions/2376405
复制相似问题