1

我想为我的 cgi 脚本编写一些单元测试。我将我的脚本编写为 modulino(脚本可能是一个模块,具体取决于上下文),我想测试它的功能,但也要确保 query_string 中的所有参数都按应有的方式设置。

我试过做这样的事情:

$ENV{'QUERY_STRING'} = 'param1=some_param';
my $cgi = CGI->new;
print "param1= ".$cgi->param("param1")."\n";

但它似乎完全忽略了这一点。有没有办法在不实际执行 GET 方法的情况下设置查询字符串?

4

2 回答 2

1

您可以在 CGI.pm 中使用命令行参数。

$ index.pl param1=some_param foo=bar

这些将显示在脚本中。但这仍然不方便对您的应用程序进行单元测试。如果那里有网络服务器,您可以使用Test::WWW::Mechanize

于 2015-07-10T08:50:42.590 回答
1

我想我找到了解决方案:

$ENV{QUERY_STRING} = 'engine=sample';
$ENV{REQUEST_METHOD} = 'GET';
$ENV{GATEWAY_INTERFACE} = 'CGI/1.1';

显然$ENV{QUERY_STRING}这还不够。

于 2015-07-10T08:58:57.853 回答