October 2013
Intermediate to advanced
368 pages
9h 20m
English
To use a test double, you must be able to supplant the behavior of the CurlHttp class. C++ provides many different ways, but the predominant manner is to take advantage of polymorphism. Let’s take a look at the Http interface that the CurlHttp class implements (realizes):
| c5/1/Http.h | |
| | virtual ~Http() {} |
| | virtual void initialize() = 0; |
| | virtual std::string get(const std::string& url) const = 0; |
Your solution is to override the virtual methods on a derived class, provide special behavior to support testing in the override, and pass the Place Description Service code a base class pointer.
Let’s see some code.
| c5/1/PlaceDescriptionServiceTest.cpp | |
| | TEST_F(APlaceDescriptionService, ReturnsDescriptionForValidLocation) ... |