NAME

Test::Mojo::Role::Debug - Test::Mojo role to make debugging test failures easier

SYNOPSIS

use Test::More;
use Test::Mojo::WithRoles 'Debug';
my $t = Test::Mojo::WithRoles->new('MyApp');

$t->get_ok('/')->status_is(200)
    ->element_exists('existant')
    ->d         # Does nothing, since test succeeded
    ->element_exists('non_existant')
    ->d         # Dump entire DOM on fail
    ->d('#foo') # Dump a specific element on fail
    ->da        # Always dump
    ->da('#foo') # Always dump a specific element
    ->da('', 'file.html') # Always dump to a file
;

done_testing;

DESCRIPTION

When you chain up a bunch of tests and they fail, you really want an easy way to dump up your markup at a specific point in that chain and see what's what. This module comes to the rescue.

METHODS

You have all the methods provided by Test::Mojo, plus these:

d

# On test failure:
$t->d;         # print entire DOM
$t->d('#foo'); # print a specific element
$t->d('', 'file.html');     # dump entire DOM into a file
$t->d('#foo', 'file.html'); # dump specific element into a file

Returns its invocant. On failure of previous tests (see "success" in Mojo::DOM), dumps the DOM of the current page to the screen. Takes an optional selector to be passed to "at" in Mojo::DOM, in which case, only the markup of that element will be dumped.

A filename can be provided as the second argument to put the contents into the file instead. To dump entire DOM, use undef or empty string as the first argument.

da

$t->da;
$t->da('#foo');
$t->da('', 'file.html');
$t->da('#foo', 'file.html');

Same as "d", except it always dumps, regardless of whether the previous test failed or not.

SEE ALSO

Test::Mojo ("or" in Test::Mojo in particular), Mojo::DOM

REPOSITORY

Fork this module on GitHub: https://github.com/zoffixznet/Test-Mojo-Role-Debug

BUGS

To report bugs or request features, please use https://github.com/zoffixznet/Test-Mojo-Role-Debug/issues

If you can't access GitHub, you can email your request to bug-test-mojo-role-debug at rt.cpan.org

AUTHOR

ZOFFIX ZOFFIX

CONTRIBUTORS

JBERGER JBERGER

LICENSE

You can use and distribute this module under the same terms as Perl itself. See the LICENSE file included in this distribution for complete details.