Assert-Refute
view release on metacpan or search on metacpan
- TST Upgrade tests to work on perl 5.6.2
0.05 Mon Dec 25 2017
- API BREAK Importing is, ok, like & co REQUIRES :all or :basic keyword
- API Add refute_these for runtime assertions
- API Add configure for per-caller configuration of refute_these
- MOD T::Hash: keys_are(), values_are()
- MOD T::Array: is_sorted(), list_of()
- TST Add a use_ok test, finally
- API Add get_fail_count to get number of failed tests
- API BREAK done_testing(0) now means don't die if locked
0.04 Tue Dec 19 2017
- API BREAK rename contract's own methods into get_*/set_*/do_*
The new names are:
is_done is_passing get_count get_tests get_result get_error
get_tap get_sign do_log get_log set_result
0.0304 Sun Dec 17 2017
- BUG Fix tests again - splitting t/602 in two didn't work
lib/Assert/Refute/Contract.pm view on Meta::CPAN
$opt{driver} = delete $opt{backend};
};
return (ref $self)->new( %$self, %opt );
};
=head2 apply( @parameters )
Spawn a new execution log object and run contract against it.
Returns a locked L<Assert::Refute::Report> instance.
=cut
sub apply {
my ($self, @args) = @_;
my $c = $self->{driver};
$c = $c->new unless ref $c;
# TODO plan tests, argument check etc
lib/Assert/Refute/Report.pm view on Meta::CPAN
When extending this module,
please try to stick to C<do_*>, C<get_*>, and C<set_*>
to avoid clash with test names.
This is weird and probably has to be fixed at some point.
=head3 do_run( $code, @list )
Run given CODEREF, passing self as both first argument I<and>
current_contract().
Report object is locked afterwards via L</done_testing> call.
Exceptions are rethrown.
As of current, an exception in CODEREF leaves report in an unfinished state.
This may or may not change in the future.
Returns self.
Example usage is
Assert::Refute::Report->new->run( sub {
t/105-Report-readonly.t view on Meta::CPAN
use warnings;
BEGIN{ delete @ENV{qw(NDEBUG PERL_NDEBUG)} };
use Test::More;
use Assert::Refute::Report;
my $c = Assert::Refute::Report->new;
$c->done_testing;
foreach my $method (qw( refute note diag done_testing )) {
is eval { $c->$method(undef); "$method shall not pass" }, undef, "$method locked";
like $@, qr/done_testing.*no more/, "Error message as expected";
};
done_testing;
t/126-get_title-set_title.t view on Meta::CPAN
is +$rep->set_title( "Test something" ), $rep, "set_title returns self";
is +$rep->get_title, "Test something", "get_title round trip";
$rep->done_testing;
# throws_ok by hand
my $do = eval {
$rep->set_title("Something else");
1;
};
like $@, qr/done_testing/, "set_title value is locked";
is $do, undef, "set_title dies";
is +$rep->get_title, "Test something", "get_title persists";
};
subtest "plan title" => sub {
my $rep = Assert::Refute::Report->new;
$rep->plan( title => "some test" );
is +$rep->get_title, "some test", "Title via plan works";
};
( run in 1.417 second using v1.01-cache-2.11-cpan-f56aa216473 )