Inspecting Privates

New test-drivers inevitably ask two questions: Is it OK to write tests against private member data? What about private member functions? These are two related but distinct topics that both relate to design choices you must make.

Private Data

The Tell-Don’t-Ask design concept says that you should tell an object to do something and let that object go off and complete its work. If you ask lots of questions of the object, you’re violating Tell-Don’t-Ask. A system consisting of excessive queries to other objects will be entangled and complex. Client C asks an object S for information, does some work that’s possibly a responsibility S could take on, asks another question of S, and so on, creating a tight interaction between C and ...

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.