Assert-Refute
view release on metacpan or search on metacpan
lib/Assert/Refute.pm view on Meta::CPAN
Otherwise it is assumed to pass.
The BLOCK must accept one argument, the contract execution report,
likely a L<Assert::Refute::Report> instance.
More arguments MAY be added in the future.
Return value is ignored.
A read-only report instance is returned by C<try_refute> instead.
If C<on_pass>/C<on_fail> callbacks were specified during C<use> or
using C<configure>, they will also be executed if appropriate.
If C<NDEBUG> or C<PERL_NDEBUG> environment variable is set at compile time,
this block is replaced with a stub
which returns an unconditionally passing report.
This is basically what one expects from a module in C<Assert::*> namespace.
=cut
lib/Assert/Refute.pm view on Meta::CPAN
Unlike with try_refute, exceptions are just let through.
The BLOCK must accept one argument, the contract execution report,
likely a L<Assert::Refute::Report> instance.
More arguments MAY be added in the future.
Return value is ignored.
A read-only report instance is returned by C<try_refute> instead.
If C<on_pass>/C<on_fail> callbacks were specified during C<use> or
using C<configure>, they will also be executed if appropriate.
If C<NDEBUG> or C<PERL_NDEBUG> environment variable is set at compile time,
this block is replaced with a stub
which returns an unconditionally passing report.
This is basically what one expects from a module in C<Assert::*> namespace.
B<[EXPERIMENTAL]>. Name and behavior MAY change in the future.
Should this function prove useful, it will become the successor
lib/Assert/Refute.pm view on Meta::CPAN
Or alternatively one may resort to L<Test::More>-like DSL:
use Assert::Refute qw(:all);
my $report = refute_and_report {
is $price * $amount, $total, "Numbers add up";
like $header, qr/<h1>/, "Header as expected";
can_ok $duck, "quack";
};
This method does not adhere C<NDEBUG>, apply callbacks, or handle expections.
It just executes the checks.
Not exported by default.
B<[EXPERIMENTAL]>. Name and behavior MAY change in the future.
Should this function prove useful, it will become the successor
or C<try_refute>.
=cut
sub refute_and_report (&;@) { ## no critic # need prototype
lib/Assert/Refute.pm view on Meta::CPAN
as contract report.
=item * skip_all - reason for skipping ALL C<try_refute> blocks
in the affected package.
This defaults to C<PERL_NDEBUG> or C<NDEBUG> environment variable.
B<[EXPERIMENTAL]>. Name and meaning MAY change in the future.
=back
The callbacks MUST be either
a C<CODEREF> accepting L<Assert::Refute::Report> object,
or one of predefined strings:
=over
=item * skip - do nothing;
=item * carp - warn the stringified report;
=item * croak - die with stringified report as error message;
( run in 0.546 second using v1.01-cache-2.11-cpan-39bf76dae61 )