NAME

Assert::Refute::T::Tester - test the test conditions themselves

DESCRIPTION

This module is inspired by Test::Tester. While contract_is is a good way to quickly determine whether a test condition holds any water, a more detailed inspection is desirable.

[EXPERIMENTAL] This module is under active development and its interface may change in the future.

SYNOPSIS

use Test::More;
use Assert::Refute::T::Tester;

use My::Refute::Module qw(check_this check_that);

my $report = try_refute {
    check_this(...); # pass
    check_that(...); # fail
};

test_test
    $report->get_result_details(0),
    { diag => [] },
    "No premature output";

test_test
    $report->get_result_details(1),
    { ok => 1 },
    "Passing test";

test_test
    $report->get_result_details(2),
    { ok => 0, diag => [ qr/foo/, qr/bar/ ] },
    "Failing test";

EXPORT

The following functions are exported by default:

test_test

test_test \%result_details, \%spec, "Message";

Result details come from "get_result_details" in Assert::Refute.

The exact format MAY change in the future, but this test should keep working.

%spec may include:

ok - whether the test passed or not.
name - test name (without the number)

Can be exact string or regular expression.

diag - an array of regular expressions.

Each line of output will be matched against exactly one expression.

Output produced by note() is ignored.

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:

http://www.perlfoundation.org/artistic_license_2_0