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 the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.