通读Dancer :: Test文档使进行测试似乎很简单,但是我缺少了一些东西。如果我具有以下Dancer应用程序(WebApp.pm
):
package WebApp;
use Dancer;
# declare routes/actions
get '/' => sub {
"Hello World";
};
dance;
然后是以下测试文件
001_base.t
:use strict;
use warnings;
use Test::More tests => 1;
use WebApp;
use Dancer::Test;
response_status_is [GET => '/'], 200, "GET / is found";
然后,当我运行测试:
perl 001_base.t
时,输出是舞者脚本启动了:Dancer 1.3132 server 7679 listening on http://0.0.0.0:3000
== Entering the development dance floor ...
但是然后等待。 (这与在WebApp.pm中运行代码一样)。我在这里想念什么?我想我没有正确运行测试。
最佳答案
您应该从WebApp.pm中删除dancer()
。这是正确的内容:
package WebApp;
use Dancer;
# declare routes/actions
get '/' => sub {
"Hello World";
};
1;
然后您的测试将通过。
创建舞者应用程序的常用方法是在一个或多个.pm文件中声明所有路由,并使用通常包含以下内容的文件命名为
app.psgi
:#!/usr/bin/env perl
use Dancer;
use WebApp;
dance;
然后,要启动Web应用程序,应运行
perl -Ilib app.psgi
。