NAME

Test2::Tools::Warnings - Tools to verify warnings.

DESCRIPTION

This is a collection of tools that can be used to test code that issues warnings.

SYNOPSIS

    use Test2::Tools::Warnings qw/warns warning warnings no_warnings/;

    ok(warns { warn 'a' }, "the code warns");
    ok(!warns { 1 }, "The code does not warn");
    is(warns { warn 'a'; warn 'b' }, 2, "got 2 warnings");

    ok(no_warnings { ... }, "code did not warn");

    like(
        warning { warn 'xxx' },
        qr/xxx/,
        "Got expected warning"
    );

    is(
        warnings { warn "a\n"; warn "b\n" },
        [
            "a\n",
            "b\n",
        ],
        "Got 2 specific warnings"
    );

EXPORTS

All subs are exported by default.

$count = warns { ... }

Returns the count of warnings produced by the block. This will always return 0, or a positive integer.

$warning = warning { ... }

Returns the first warning generated by the block. If the block produces more than 1 warning they will all be shown as notes, and an actual warning will tell you about it.

$warnings_ref = warnings { ... }

Returns an arrayref with all the warnings produced by the block. This will always return an array reference. If there are no warning this will return an empty array reference.

$bool = no_warnings { ... }

Return true if the block has no warnings. Returns false if there are warnings.

SOURCE

The source code repository for Test2-Suite can be found at http://github.com/Test-More/Test2-Suite/.

MAINTAINERS

Chad Granum <exodist@cpan.org>

AUTHORS

Chad Granum <exodist@cpan.org>

COPYRIGHT

Copyright 2016 Chad Granum <exodist@cpan.org>.

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

See http://dev.perl.org/licenses/