3.4 生产代码与测试代码分离
本文讲的是C语言程序设计进阶教程一3.4 生产代码与测试代码分离,你应该编写可以检测出自身bug的程序。如果你想要检查一个数组是否被排序好了,不要在屏幕上打印出元素并用自己眼睛观察。应该写一个检查数组是否排序的函数。代码通常不会打印出调试信息。相反,写一些可以帮助你不用依靠眼睛就能调试的代码。
你应该在编写程序之前就考虑编写测试代码。这是一个普遍的做法,叫作测试驱动的开发。怎样去编写测试代码呢?很多书都写了关于软件测试方面的内容。本节给你一个建议。考虑下面两个关于测试代码的例子。假设func是你想去测试的函数,test_func是测试func的代码。
这两种方法的不同在哪里呢?第一种方法(位于左侧)在程序的函数内部调用测试代码。在第二种方法中(位于右侧),测试代码位于程序外部调用func。这个差异是很重要的,因为第一种方法把测试代码与程序实际需要的代码(有时叫作“生产代码”)混在了一起。结果就是,想要把测试代码移除对你来说是很困难的。第二种方法把生产代码与测试代码分离开,所以你就能在随后很容易地移除测试代码。应该在测试你的程序时采取第二种方法。
原文标题:C语言程序设计进阶教程一3.4 生产代码与测试代码分离