Я создаю Perl-приложение для архивирования простых веб-страниц (т. Е. Статических страниц без задействованных строк запроса).Я хотел бы написать тесты, чтобы проверить функциональность модуля, который будет обращаться к удаленным файлам.Чтобы сделать тесты самостоятельными, я ищу простой, автономный веб-сервер, который тестовые сценарии могут использовать локально.
Ниже приведен пример, который описывает то, что я пытаюсь сделать.Я сократил его до минимума со следующей структурой каталогов:
./MirrorPage.pm
./t/001_get_url.t
./t/test-docroot/test-1.json
Содержимое "./MirrorPage.pm":
package MirrorPage;
use Moose;
use LWP::Simple;
use namespace::autoclean;
sub get_url {
my ($self, $url_to_get) = @_;
### grab the contents of the url
my $url_data = get($url_to_get);
### return the contents.
return $url_data;
}
__PACKAGE__->meta->make_immutable;
1;
Содержимое" ./t/001_get_url.t ":
#!/usr/bin/perl
use Modern::Perl;
use Test::More;
use MirrorPage;
### Start test www server on port 8123 here ###
my $t = new_ok('MirrorPage', undef, 'Create MirrorPage');
is(
$t->get_url("http://localhost:8123/test-1.json"),
'{ testkey: "testvalue" }',
"Verify the data."
);
### Kill test www server here ###
done_testing();
Содержание" ./t/test-docroot/test-1.json":
{ testkey: "testvalue" }
Цель состоит в том, чтобы начать и убить себя-содержит веб-сервер в соответствующих местах комментариев в "./t/001_get_url.t".Веб-сервер должен обслуживать содержимое каталога «./t/test-docroot» в качестве корня документа.
Учитывая все это: Каков наилучший / самый простой способ настроить автономный веб-сервер для предоставления статических файлов для тестирования в perl?