我最近了解了 Module::Starter 并使用它构建了 Web 应用程序的框架(CGI 脚本分类以及相关模块)。能够通过运行 make test
来测试我的代码非常棒,但我还想使用 Test::WWW::Mechanize 之类的东西来测试 CGI 脚本。这需要在运行测试之前在某处安装脚本并配置网络服务器,这看起来有点简单。
在发行版中包含这样的测试是否有意义?我的感觉是,我应该让我的模块尽可能多地完成繁重的工作,并让 CGI 脚本简单地调用模块函数,但我进行测试的主要原因之一是避免 CGI 中与安全相关的回归。
最佳答案
我不知道你为什么说你需要一个网络服务器。 CGI 脚本(用 Perl 或其他语言编写)只是一个可执行程序,需要某些输入和 certain environment variables to be set ,并将 HTTP 响应写入标准输出。
因此,请模拟一些设置 CGI 环境变量、对输入进行 URL 编码,并将输出与预期进行比较的东西。
关于perl - 分发中 Perl CGI 脚本的自动测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16824289/