On Tue, Feb 22, 2011 at 3:35 PM, Michael Alan Dorman <mdorman@ironicdesign.com> wrote:
So, this worked (using the output of 'dancer -a Foo'):
----->8----- #!/usr/bin/perl use Dancer qw{:syntax}; use Foo; use Test::More tests => 2; require Test::WWW::Mechanize::PSGI; set apphandler => 'PSGI'; my $test = Test::WWW::Mechanize::PSGI->new (app => do ("bin/app.pl")); $test->get_ok ('/') or diag $test->content; $test->content_contains ('Tutorial'); -----8<-----
The thing that confuses and annoys me is the need to use 'do'---mostly because I don't quite understand why I need it. I tried:
http://search.cpan.org/dist/Test-WWW-Mechanize-PSGI/lib/Test/WWW/Mechanize/P... needs the code ref to start your app, which is what you give it with the " do 'filename' " construct. The reason it needs that is due to what the PSGI specification says an app _is_: http://search.cpan.org/dist/PSGI/PSGI.pod#Applications Applications: Applications are web applications that actually get HTTP requests and return HTTP response. In PSGI it's a *code reference* http://search.cpan.org/dist/PSGI/PSGI.pod#SPECIFICATION A PSGI application is a Perl code reference. the do() you are using gives the PSGI tester the code reference it needs (your app) to run tests against. -marco- -- Marco Fontani Glasgow Perl Mongers - http://glasgow.pm.org/ Join the RackSpace Cloud at: http://www.rackspacecloud.com/277.html