2.6 我们到哪里了
到这里,你应当对Unity和CppUTest的概况有了很好的了解,并且明白了如何用测试夹具和测试用例来定义测试。
到目前为止你还没有看到测试驱动开发(TDD),为sprintf()写的那些测试并不是TDD,因为sprintf()是已经存在的代码。请你把新学到的知识运用到接下来的练习中。在接下来的两章中我们会用测试驱动来开发一些新代码。
学以致用
- 在开发平台上建立一个测试环境。你可以从附录A中得到一些帮助。下载书中的代码,并运行makefile。可以访问本书的主页找到书中的代码: http://www.pragprog.com/titles/jgade 。在 code/README.txt 中可以找到更多信息。运行makefile。所有的测试都应通过。
- 在代码的目录中运行 make -f MakefileUnity.mk。Unity的sprintf()测试由这个makefile来构建。
- 然后在代码目录中运行 make -f MakefileCppUTest.mk。CppUTest的sprintf()测试由这个makefile来构建。
- 参考本章中的例子,写更多的sprintf()测试。对于Unity,使用code/unity/stdio/SprintfTest.c。对于CppUTest,使用code/tests/stdio/SprintfTest.cpp。
- 修改TEST_GROUP(Sprintf),使它能处理任意大小的sprintf()输出。
那些想开发真正可靠软件的人会发现,必须首先找到能避免产生大部分软件bug的手段。结果是,软件开发流程会变得更轻量。更有效率的程序员不应把时间浪费到调试上,他们一开始就不应该引入bug。
—Edsger Dijkstra,The Humble Programmer