3 * Most of the tests are named poorly;
4 naming should describe a use case in story-like language,
5 not simply identify the unit under test.
6 An example would be the difference between "testCalculate"
7 and "testAddingIntegersTogetherWorks".
9 * Many of the tests make multiple assertions, and are thus not unitary tests.
10 By using data-providers and more use-case oriented test selection
11 nearly all of these cases can be easily resolved.
13 * Some of the test files are either incorrectly named or in the wrong folder.
14 Tests should be organized in a mirrored structure to the source they are testing,
15 and named the same, with the exception of the word "Test" at the end.
17 * Shared set-up code or base classes are present,
18 but usually named improperly or appear to be poorly factored.
19 Support code should share as much of the same naming as the code it's supporting,
20 and test and test-case depenencies should be considered to resolve other shared needs.