Summary
In this chapter, we’ve taken our first proper look at the unit testing project, and you’ve seen how to implement unit testing using the Qt Test framework. We’ve also discussed the importance of programming to interfaces to enable mocking. Now we have unit tests in place for our main data classes, so if we ever accidentally change the behavior, the unit tests will fail and highlight a potential problem for us.
As we discussed, this is not a book about test driven development, and we will sometimes cut corners and go against the advice in this chapter to keep the explanation of other concepts as simple as possible, but I do urge you to implement unit testing of some kind in your projects if you can, as it is a very valuable practice that is always worth the additional time investment. Some developers like the rigor of full-blown TDD, whereas others prefer to write unit test after the fact to verify the work they have done. Find an approach that works for you and your coding style.
We will return to the test project occasionally to demonstrate certain behaviors. but we’ll certainly not be achieving 100% code coverage. Now that you have the test project and scaffolding in place, it’s just a case of adding further test classes for each class you want to test. As long as you inherit from TestSuite in the same way as we have in this chapter, they will be automatically detected and executed when you run the test project.
In Chapter 7, Persistence, we’ll go ahead and implement the functionality we just discussed—persisting our data to a database.