Test Double
A Test Double stands in for a real system part. Stubs, fakes, spies, and mocks give control or visibility.
Another example
A shipping test uses a fake carrier with fixed rates. A spy checks that an accepted order schedules one pickup.
Main parts
- 01Code or behavior under test
- 02Observable evidence
- 03Coverage, failure, and recovery
Use it when
Choose the simplest double that stabilizes a boundary or reveals an important contract.
Do not use it when
Do not mock your own call graph, copy dependency bugs, or replace a valuable integration test.
Name used in code
stub / fake / spy / mock Before you ship
Check the environment and prepared test data (fixture). Define a result you can observe, failure and edge cases, isolation, stable inputs, useful error details, and cleanup. Set a time budget, owner, and flaky-test rule.
Outcome: Use Test Double to gather repeatable evidence about this behavior or quality risk. User context: A shipping test uses a fake carrier with fixed rates. A spy checks that an accepted order schedules one pickup. Validation approach: Test Double. Why it fits: Choose the simplest double that stabilizes a boundary or reveals an important contract. Do not use it when: Do not mock your own call graph, copy dependency bugs, or replace a valuable integration test. Test requirements: Name the system and test environment. Define prepared test data, other inputs, and the result you can observe. Include failure and edge cases, allowed error, isolation, and cleanup. Test operations: Make failures easy to diagnose. Control random or changing inputs. Name an owner. Keep the test fast and simple enough for its release gate. Acceptance criteria: The test fails for the known bug and passes after the fix. It repeats in the target environment, gives useful evidence, and does not expose or change unrelated data. Evidence and limits (evidence boundary): No single official standard controls the whole term. Its meaning may change across teams, platforms, or frameworks. Unknowns to confirm: Release gate, environment, prepared test data, allowed error, time budget, owner, and flaky-test rule.
Check this request
Review the current use of Test Double. Definition: A Test Double stands in for a real system part. Stubs, fakes, spies, and mocks give control or visibility. Release checks: Check the environment and prepared test data (fixture). Define a result you can observe, failure and edge cases, isolation, stable inputs, useful error details, and cleanup. Set a time budget, owner, and flaky-test rule. Before changing code, report the evidence you found, gaps, severity, and the smallest safe fix.