NAME

   Test::Mojo::Role::PSGI - Test PSGI apps using Test::Mojo

SYNOPSIS

     use strict;
     use warnings;

     use Test::More;
     use Test::Mojo;

     my $t = Test::Mojo->with_roles('+PSGI')->new('path/to/app.psgi');

     $t->get_ok('/some/path')
       ->status_is(200)
       ->content_type_like(qr/html/)
       ->text_is('.some-class:nth-child(5)' => 'content of 5th some-class');

     ...

     done_testing;

DESCRIPTION

   Test::Mojo makes testing Mojolicious applications easy and fun.
   Wouldn't it be nice if there was some way to use it for non-Mojolicious
   apps? Test::Mojo::Role::PSGI does just that.

OVERRIDES

new

   Overrides the "new" in Test::Mojo method to use a PSGI app,
   instantiating a script or class if necessary. This should feel very
   similar to the original behavior except that now PSGI apps are the
   target, rather than Mojolicious apps.

   Acceptable arguments are strings that can be used by "load_psgi" in
   Plack::Util or else instantated PSGI applications, including bare code
   references.

NOTA BENE

   This module previously recommended Test::Mojo::WithRoles and depended
   on it. Since that recommendation, proper role handling was added to
   Mojolicious (see "Extending Test::Mojo" in
   Mojolicious::Guides::Testing). This obviates the need for "WithRoles",
   just use the native one. The translation is as follows:

     use Test::More;
     use Test::Mojo;

     my $t = Test::Mojo::WithRoles->new('path/to/app.psgi');

   becomes

     use Test::More;
     use Test::Mojo;

     my $t = Test::Mojo->with_roles('+PSGI')->new('path/to/app.psgi');

SEE ALSO

   Test::Mojo

   Mojolicious

   Mojolicious::Plugin::MountPSGI

   Role::Tiny

   Test::Mojo::WithRoles

SOURCE REPOSITORY

   http://github.com/jberger/Test-Mojo-Role-PSGI

AUTHOR

   Joel Berger, <[email protected]>

COPYRIGHT AND LICENSE

   Copyright (C) 2015 by Joel Berger

   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.