Unit testing approaches

Some thoughts about how to structure tests and code to make testing easier.