Getting Test Doubles in Place

You have two jobs when introducing a test double. First, code the test double. Second, get the target to use an instance of it. Certain techniques for doing so are known as dependency injection (DI).

In the PlaceDescriptionService example, we injected the test double via a constructor. In some circumstances, you might find it more appropriate to pass the test double using a setter member function. These ways to inject a test double are known as (surprise!) constructor injection or setter injection.

Other techniques for getting test doubles in place exist. Use the one that’s most appropriate for your circumstance.

Override Factory Method and Override Getter

To apply Override Factory Method, you must change the production ...

Get Modern C++ Programming with Test-Driven Development now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.