我即将对现有的 Apache C 模块进行一些更改,以修复一些可能的安全漏洞和一般的不良做法。但是,代码的功能必须保持不变(修复错误的情况除外)。标准回归测试的东西似乎是有序的。我想知道是否有人知道针对代码运行一些回归单元测试的好方法。我正在考虑使用C-Unit的方式,但是与 Apache APR 和状态结构的所有联系,我想知道是否有一个很好的方法来测试它。例如,是否有任何可与 C-unit 一起使用的预构建框架?
谢谢
彼得
我一直在考虑回答这个问题,但认为其他人可能会想出更好的答案,因为我的答案相当不令人满意:不,我不知道有任何这样的单元测试框架。
我认为您最好的选择是尝试重构您的 C 模块,使其对 httpd 代码库的依赖项包含在一个非常薄的粘合层中。我不会太担心对 APR 的依赖,它可以很容易地链接到您的单元测试代码中。像使用请求记录这样的事情,你应该试着抽象一下。
如果怀疑代码包含安全漏洞和不良做法,我会建议这样的重构是一个好主意。这通常是一项相当大的工作。
您可能还会考虑运行集成测试而不是单元测试(理想情况下两者都是),即从服务器提出一组请求和预期响应,并运行一个程序来比较实际响应和预期响应。
因此,不是您一直在寻找的响应,您可能自己也想到了这一点。但至少我可以根据经验告诉你,如果由于业务原因不能用新的模块替换模块,那么从长远来看,重构它以提高可测试性可能会有所回报。
花了一些时间为您浏览互联网,因为这是我自己很好奇的一个问题。偶然发现一篇 wiki 文章指出
http://cutest.sourceforge.net/
用于 apache 便携式 c 运行时测试。可能值得一试。