Testing is probably one of the most controversial subjects in programming. This controversy concerns all aspects of testing: whether to test, when you should test, what you should test, how much you should test, how often you should test, how can you measure the quality of tests, what the best coverage metrics are, and more. But none of these subjects can be considered alone. And they’re nearly all dependent on other questions that are far-less-often debated.
In this appendix, I cover how to write effective tests and how to make your program more testable using property-based testing. You’ll learn how to
- Devise a set of properties that the result of your program must fulfill
- Write interfaces, then ...