15.5. Summary

Unit testing is a powerful concept which, if properly implemented, can both reduce maintenance costs and increase flexibility
in any long-term project. It is also important to understand that unit testing is not a panacea, a Magic Problem Solver,
or a silver bullet. Writing good test cases is hard, and keeping them up to date takes discipline (especially when customers
are screaming for critical bug fixes). Unit testing is not a replacement for other forms of testing, including functional
testing, integration testing, and user acceptance testing. But it is feasible, and it does work, and once you've seen it
work, you'll wonder how you ever got along without it.

This chapter covered a lot of ground, and much of it wasn't even Python-specific. There are unit testing frameworks for many languages, all of which require you to understand the same basic concepts: