January 2019
Intermediate to advanced
512 pages
14h 5m
English
We will now show the reader how to use policy-based design to write better tests. In particular, policies can be used to make the code more testable by means of unit tests. This can be done by substituting a special test-only version of a policy instead of the regular one. Let's demonstrate this on the example of the reference-counting policy from the previous subsection.
The main challenge of that policy is, of course, maintaining the correct reference count. We can easily develop some tests that should exercise all of the corner cases of reference counting:
// Test 1: only one pointer{ SmartPtr<C, .....> p(new C);} // C should be deleted here// Test 2: one copy{ SmartPtr<C, .....> p(new C); { auto p1(p); // Reference count ...