CatalystX-Test-Recorder
view release on metacpan or search on metacpan
README.mkdn view on Meta::CPAN
NAME
CatalystX::Test::Recorder - Generate tests from HTTP requests
SYNOPSIS
package MyApp;
use Moose;
extends 'Catalyst';
__PACKAGE__->setup(qw(+CatalystX::Test::Recorder));
1;
# hit /recorder/start to start recording
# make requests to your application
# hit /recorder/stop to get the test
Example output:
use Test::More;
use strict;
use warnings;
use URI;
use HTTP::Request::Common qw(GET HEAD PUT DELETE POST);
use Test::WWW::Mechanize::Catalyst 'MyApp';
my $mech = Test::WWW::Mechanize::Catalyst->new();
$mech->requests_redirectable([]); # disallow redirects
my ( $response, $request, $url );
$request = POST '/foo', [ 'foo' => 'bar' ];
$response = $mech->request($request);
is( $response->code, 200 );
$url = URI->new('/foo');
$url->query_form( { 'foo' => 'bar' } );
$request = GET $url;
$response = $mech->request($request);
done_testing;
DESCRIPTION
In order to test your application thoroughly you have to write a lot of
tests, to ensure all controllers and actions are set up properly. This
can be quite a pain, especially for large forms and complex business
logic.
This module provides a test skeleton from HTTP requests to your
application. It captures body parameters as well as query parameters and
handles all HTTP request methods. The generated test checks the response
code only. This is where the real work begins. See
Test::WWW::Mechanize::Catalyst for more testing goodness.
CONFIGURATION
package MyApp;
...
__PACKAGE__->config( 'CatalystX::Test::Recorder' => {
namespace => '...',
...
} );
namespace
Sets the namespace under which the start and stop actions are located.
Defaults to `recorder'.
skip
This is an arrayref of regexprefs. Requests, whose path matches on of
these regexes, will not be recorded. Defaults to `qr/^static\//,
qr/^favicon.ico/'.
template
Specify the path to a Template::Alloy (TT dialect) file which is used to
render the test. For reference, the default template is available in the
`__DATA__' section of `CatalystX::Test::Recorder::Controller'.
The following variables are avaiable from the template:
* requests
An arrayref of Catalyst::Request objects.
* responses
An arrayref of Catalyst::Response objects.
( run in 0.545 second using v1.01-cache-2.11-cpan-39bf76dae61 )