Run unit tests without dependencies

Unit test frameworks which encourage complexities like having “set up” and “tear down” methods are a bad idea. It’s best to use a unit test framework which runs the tests independently, atomically and on multiple threads.