views:

258

answers:

3

I know that this is a subjective question...

Typemock is $799 per developer. Licences for 5 devs comes up to a pretty large sum. If someone here used Typemock and given that there are open source mocking frameworks, is it worth the money? Why?

+3  A: 

The subjective part is your analysis of how much time (and therefore, money) use Typemock will save you. It may help to start with how much does a developer-hour cost you? $100? In that case, how long will it take before Typemock saves you 8 hours of time?

Probably the only way to make an intelligent decision is to get an evaluation license and do some real testing to see how much time it saves.

Adam Crossland
+2  A: 

possibly not as objective as you'd like ( as I do work there) , but this is a check list I've been working on. a list of questions you might ask yourself when evaluating any one of the current Isolation frameworks out there. http://site.typemock.com/isolation-framework-checklist

RoyOsherove
@Roy, it would be useful is to see some code walkthroughs (a la Pex guys) on your TypeMockTV rather than just 2 guys shooting the sh*t.
AngryHacker
AngryHacker - examples of what?
RoyOsherove
@RoyOsherove - examples of how to tackle various problems with the TypeMock Isolator - and showing the code to do it.
AngryHacker
+7  A: 

In our project we had 12 Typemock licenses that we had to annually upgrade, but I believe it was worth every penny (actually øre) we spent.

Why? Typemock Isolator has one important advantage: it does not set (almost) any constraints on the code you need to mock. Private constructors? Sealed classes? Static classes? No problem - you can isolate all this stuff using Typemock.

Just an example: you need to test the code that handles SqlException with certain properties, how can you do this? SqlException is a sealed class with non-public constructor. You can come with various workarounds, but as long as you're using managed code, there is no direct way of mocking SqlException.

Typemock Isolator intercepts your code as a profiler, it goes unmanaged, so it opens for much more powerful mocking. And if you're dealing with certain product (e.g. SharePoint) then Isolator is the only framework that can handles it, because as somebody put it, SharePoint is just a bunch of private sealed classes.

Having said that, because of its power Typemock Isolator requires developers to care more about testability of their own code. Using Isolator is easier to write non-testable code and still manage to test it with Isolator (sounds contradictional I know). But assuming you got your own code right, Typemock Isolator is invaluable tool to fake third-party components, and when I say "third-party" I also mean stuff that comes from Microsoft and that is not always easily testable.

Vagif Abilov