Synopsis
use strict; use warnings; use Test::More; use Test::TypeTiny; use Types::Mine qw(Integer Number); should_pass(1, Integer); should_pass(-1, Integer); should_pass(0, Integer); should_fail(2.5, Integer); ok_subtype(Number, Integer); done_testing;
Status
This module is covered by the Type-Tiny stability policy.
Description
Test::TypeTiny provides a few handy functions for testing type constraints.
Functions
should_pass($value, $type, $test_name)
should_pass($value, $type)
Test that passes iff
$value
passes$type->check
.should_fail($value, $type, $test_name)
should_fail($value, $type)
Test that passes iff
$value
fails$type->check
.ok_subtype($type, @subtypes)
Test that passes iff all
@subtypes
are subtypes of$type
.EXTENDED_TESTING
Exportable boolean constant.
matchfor(@things)
Assistant for matching exceptions. Not exported by default. See also Test::Fatal::matchfor.
Environment
If the EXTENDED_TESTING
environment variable is set to true, this module will promote each should_pass
or should_fail
test into a subtest block and test the type constraint in both an inlined and non-inlined manner.
This variable must be set at compile time (i.e. before this module is loaded).
Bugs
Please report any bugs to https://github.com/tobyink/p5-type-tiny/issues.
See Also
For an alternative to should_pass
, see Test::Deep::Type which will happily accept a Type::Tiny type constraint instead of a MooseX::Types one.