Test double

A test double is software used in software test automation that satisfies a dependency so that the test need not depend on production code. A test double provides functionality via an interface that the software under test cannot distinguish from production code.

A programmer generally uses a test double to isolate the behavior of the consuming code from the rest of the codebase.

A test double is usually a simplified version of the production code and may include capabilities specific to testing.

Test doubles are used to build test harnesses.