TestCase Refactor

This way if someone doesn't want all the testing traits, they can extend `BaseTestCase` rather than `TestCase`.