NAME
Assert::Refute::T::Errors - exception and warning check for Assert::Refute suite
SYNOPSIS
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
My::Module;
dies_like {
My::Module->foo;
}
qw/foo requires/
,
"Epmty argument prohibited"
;
dies_like {
My::Module->bar;
}
''
,
"Works without arguments"
;
EXPORTED FUNCTIONS
All functions below are exported by default.
dies_like
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 { ... }
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.
LICENSE AND COPYRIGHT
This module is part of Assert::Refute suite.
Copyright 2017-2018 Konstantin S. Uvarin. <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: