Inheritance works among the TestCase classes. Ideally, each TestCase is unique. Pragmatically, there may be common features among cases. There are the following three common ways in which TestCase classes may overlap:
- Common setUp(): We may have some data that is used in multiple TestCase. There's no reason to repeat the data. A TestCase class that only defines setUp() or tearDown() with no test methods is legal, but it may lead to a confusing log, because there are zero tests involved.
- Common tearDown(): It's common to have a common cleanup for tests that involve OS resources. We might need to remove files and directories or kill subprocesses.
- Common results checking: For algorithmically complex tests, we may have a results checking method that verifies some properties of a result.
Looking back at Chapter 4, Attribute Access, Properties...