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 ...