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