Updated: This table is obviously obsolete. Read more about about Isolator’s advantages on the new Isolator page.
One of the things people keep asking is “so why should I pay for a tool that I can get for free?” in other words, what is so special that you’d actually want me to pay you for.
This of course, is because there is no clear comparison chart between typemock and other free and open source tools.
There are many ways to compare frameworks, but the first and easiest one would be feature by feature comparison. How fair\relevant is it? you be the judge. I’m putting this chart on this blog so that we can gather comments on what you think would constitute a fair and balanced comparison chart between the various mocking frameworks, and this is something to start with.
If you have objections, suggestions or any other type of feedback, feel free to put in a comment. (‘y’ = ‘supported’ , ‘-‘ = ‘not supported’)
(this chart relates to the enterprise version of Typemock Isolator. for a chart detailing the differenced between typemock versions and to understand what the features listed here mean, look over here.)
Feature Category | Feature Detail | Typemock Isolator | Other |
.NET Framework support | |||
1.1 | y | y | |
2.0 | y | y | |
3.0-3.5 | y | y | |
Syntax | |||
Record-Replay | y | y | |
Expectation based | y | y | |
What can it mock? | |||
public method | y | y | |
properties | y | y | |
events | y | y | |
interface | y | y | |
Abstract Classes | y | y | |
void calls | y | y | |
Non-Classic Mocking | Future Object instance | y | — |
Static methods | y | — | |
Extensions Methods | y | — | |
LINQ Queries | y | — | |
Anonymous Objects | y | — | |
Field set-get | y | — | |
Constructors | y | — | |
Parameter Constraints | |||
Argument matching | y | y | |
Custom Callbacks | y | y | |
Built in constraints | y | y | |
IDE Support | |||
Highlight mocked methods in debugger | y | — | |
Evaluate mock values safely in debugger | y | — | |
other features | |||
strict\non strict mocks | y | y | |
strongly typed calls | y(except recorder.return() ) | y | |
Extensibility mechanism for tests | y | — | |
support ‘stub’ keyword | — (stubs are supported but no keyword for it) | y | |
Runtime argument swapping | y | — | |
partial mocks | y | y | |