United Binary, LLC
Overland Park, Kansas
If you've been reading Developer Central for any length of time, you
know I'm a fan of automated unit testing: writing short tests for every
bit of functionality in your application that you can test this way, and
running through the tests on a frequent basis to be sure that you
haven't broken anything. And you probably also know that there are a
couple of good free unit testing frameworks for .NET out there. So the
question is: what do you get here for your money?
Quite a lot, actually. For starters, you get excellent documentation
that will walk you through some advanced testing scenarios, such as
testing events, multithreaded applications, or COM components called
from .NET. You also get a user interface that shows more details than
those of the free equivalents, as well as some handy timesavers like
checkboxes so you can selectively enable or disable tests (and these
settings are persisted in the HarnessIt project file).
Another very nice touch is the inclusion of some alternative testing
engines. These allow you to test ASP.NET applications (very difficult
using NUnit), as well as remote applications. You can also run tests
from inside your application, in its own AppDomain, which is sometimes
important to make the results come out the way that they're expected.
HarnessIt is also designed to put in some additional power (at the cost,
admittedly, of some complexity). You can specify an ordering for your
tests when it matters, rather than relying on a simple setup-tear
down-test order. You can also turn on exception testing in the middle of
a method, instead of saying that you expect an exception to come from
somewhere in the method.
HarnessIt is also excellent at collecting information from tests and
displaying it to you. In addition to its own detailed reporting window,
it makes available an object that any test can use to output arbitrary
strings to the HarnessIt user interface. You can also see the standard
Trace and Debug .NET output.
All in all, HarnessIt is quite a ways ahead of the current versions of
the free alternatives that I've tried. If you're a serious unit tester,
you should grab the 30-day trial version from their Web site and see
whether it convinces you to spend some money.
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.