2015-07-10 52 views
1

我想为我的cgi脚本编写一些单元测试。我写了我的脚本作为modulino(脚本可能是一个模块,取决于上下文),我想测试它的功能,但也要确保query_string中的所有参数都是按照它们应该设置的。设置perl cgi query_string离线

我会尝试做这样的事情:

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

但它似乎完全忽略了。有没有一种方法来设置查询字符串,而无需实际做GET方法?

回答

1

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

$ index.pl param1=some_param foo=bar 

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

1

我想我已经找到了解决办法:

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

Apparentely $ENV{QUERY_STRING}是不够的,这个工作。