Content deleted Content added
→Fakes, mocks and integration tests: removed content covered in test double, mock, fake, integration test and unit test articles that wasn't specific to TDD, replacing with summaries and links. Also reduced prescriptive phrasing of unit testing being the only testing done under TDD, but keeping note that it is still the primary test level. |
m →Practices to avoid, or "anti-patterns": removed testing "behavior" from anti-patterns as this is a goal not an anti-pattern |
||
Line 104:
* Dependencies between test cases. A test suite where test cases are dependent upon each other is brittle and complex. Execution order should not be presumed. Basic refactoring of the initial test cases or structure of the UUT causes a spiral of increasingly pervasive impacts in associated tests.
* Interdependent tests. Interdependent tests can cause cascading false negatives. A failure in an early test case breaks a later test case even if no actual fault exists in the UUT, increasing defect analysis and debug efforts.
* Testing precise execution
* Building "all-knowing oracles". An oracle that inspects more than necessary is more expensive and brittle over time. This very common error is dangerous because it causes a subtle but pervasive time sink across the complex project.<ref name="pathfindersolns.com">{{YouTube| id=0BWSms3J40Y| title=Test-Driven Development (TDD) for Complex Systems Introduction}} by Pathfinder Solutions</ref>{{Clarify|reason=needs better explanation, what is an all-knowing oracle? needs better tone, more factual|date=February 2022}}
* Testing implementation details.
|