...
Info |
---|
Refactorings automatically performed by an IDE are usually safe and may not require adding tests first. This is especially true for simple structural refactorings that do not affect the logic or flow of the code, such as extract class, extract method, etc. If such refactorings make writing the tests easier, then applying them without existing tests can be considered. |
...
Tests Need to be Run in a Specific Order
This usually indicates that some tests are not properly cleaning up after themselves or are not properly setting up their test prerequisites.
Anti-Patterns
Sleeps
Sleeps in tests should be avoided as they open the door to timing issues and race conditions, slow tests down and are a major cause of test flakiness.
...
- Replaced the sleep with an active wait loop (a.k.a., polling), i.e., wait until a condition has been met before moving on
- Use external synchronization, i.e., use existing class notification mechanism to know it has reached a certain state before continuing
- Refactor the code under test to eliminate concurrency
- Use external dependency calls or side-effects as synchronization points in the tests
...
- For unit or component tests, replace (using dependency injection)
Executor
objects withMoreExecutors.directExecutor()
andExecutorService
objects with MoreExecutors.newDirectExecutorService() to make the code and test single-threaded
Test Multiple Behaviors in a Single Test
...