2015-07-10 2 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 

Те, кто появится в сценарии. Но это все еще неудобно для unittesting вашего приложения. Если там есть веб-сервер, вы можете использовать Test::WWW::Mechanize.

1

Я думаю, что я нашел решение:

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

Apparentely $ENV{QUERY_STRING} не достаточно для этого, чтобы работать.

Смежные вопросы