I added methods to `MGTestCase` which are called before (`setup`) and after (`tearDown`) each test. Uses of these methods would be to create (and destroy) some common data for each of the tests in the `MGTestCase`, to time each test, or to do any task that must be done on a test-by-test basis as opposed to before and after all the tests in a `MGTestCase` (`init` and `cleanup` do that).

See ["Unit testing framework"](http://michaelgalloy.com/2007/01/04/unit-testing-framework.html) for an overview of the unit test framework.

Here's an [archive of all files needed](http://michaelgalloy.com/wp-content/uploads/2007/04/mgunit.tar.gz) and the docs for all the source code.