Replacement for a software component. Terminology is apparently inconsistent about which is which but the three choices are
- A simplified, but accurate implementation of a component (e.g., an in-memory database)
- An empty shell that can be preprogrammed with a canned sequence of expected method calls and results to return in response to those calls. If the call sequence does not match the expectation, a test failure is reported.
Notes related to Test doubles (fakes, mocks and stubs)
Dependency injection, Test driven development, Testability
Papers related to Test doubles (fakes, mocks and stubs)
- Executable counterexamples in software model checking [gennari:vstte:2018]