Design Will Change

Your first reaction to test doubles may be that using them will change your approach to design. You might find that prospect unsettling. Don’t worry, it’s a natural response.

Cohesion and Coupling

When faced with a troublesome dependency (such as a slow or volatile collaborator), the best option is to isolate it to a separate class. Granted, making an HTTP request isn’t very involved. Putting the logic in a small, separate Http class might not seem worth the effort, but you’ll have more potential for reuse and more design flexibility (the ability to replace it with a polymorphic substitute, for example). You’ll also have a few more options when it comes to creating a test double.

The alternative is to create more procedural, ...

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.