C++ Q&A
As my interest in C++ continues, I have been soliciting questions about C++ for embedded on various social media platforms. I you have a question, please email or tweet and I will do my best to answer it.
Here is a question that came in yesterday:
How testable is C++, specifically for constructs like abstract classes, templates, exceptions?
This is quite a complex question to address, partly because it can be hard to separate “testing” from “debugging”. Taking these example constructs, classes and templates may largely be tested by means of instantiations. For a temple, for example, you need to write a test harness that instantiates the template using a variety of likely data types and verify that the resulting code is valid. Exception handling is a different issue. There are a finite number of exception types to test, so the test harness just needs to include code that throws each one. Then it is a question of ensuring that the right catch block is invoked for each exception [and that the code therein does what is required].
Maybe the questioner has a broader concern, in which case they are invited come back with clarification.
Hi Colin,
I attended your online lecture on C++ yesterday and found it really informative. Looking forward to learn more from you. What do you think of using a C++ testing framework like Google Mock and Google Test. Came across an application where unit tests were written using these two ?
Glad you are enjoying the class Muhammad. I think that any tool that makes unit testing easy is a good thing. IMHO, C++ for embedded is most successful when doing a bottom up implementation and testing/measuring as you go.