Assert::Refute::T::Errors - exception and warning check for Assert::Refute suite
use Assert::Refute qw(:all); use Assert::Refute::T::Errors; my $c = contract { my $foo = shift; dies_like { $foo->bar; } "Bar requires an argument"; dies_like { $foo->bar(1); } '', "Bar works fine with 1"; }; $c->apply( $my_foo ); # check whether foo lives/dies as expected
Ditto with Test::More (although there are more fine-grained Test::Warn and Test::Exception):
use Test::More; use Assert::Refute::T::Errors; # always *after* Test::More use My::Module; dies_like { My::Module->foo; } qw/foo requires/, "Epmty argument prohibited"; dies_like { My::Module->bar; } '', "Works without arguments";
All functions below are exported by default.
dies_like { # shoddy code here } 'pattern', 'explanation';
Check that supplied code throws the expected exception.
If pattern is empty, expect the code to live through.
Otherwise convert it to regular expression if needed and match $@ against it.
$@
warns_like { warn "Foo"; warn "Bar"; } [qr/Foo/, "Bar"], "Human comment"; warns_like { # Shoddy code here } '', "No warnings";
Check that exactly the specified warnings were emitted by block. A single string or regex value is accepted and converted to 1-element array.
An empty array or a false value mean no warnings at all.
Note that this block does NOT catch exceptions. This MAY change in the future.
This module is part of Assert::Refute suite.
Copyright 2017-2018 Konstantin S. Uvarin. <khedin at cpan.org>
<khedin at cpan.org>
This program is free software; you can redistribute it and/or modify it under the terms of the the Artistic License (2.0). You may obtain a copy of the full license at:
http://www.perlfoundation.org/artistic_license_2_0
To install Assert::Refute, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Assert::Refute
CPAN shell
perl -MCPAN -e shell install Assert::Refute
For more information on module installation, please visit the detailed CPAN module installation guide.