Test::TypeTiny - useful functions for testing the efficacy of type constraints
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;
This module is covered by the Type-Tiny stability policy.
Test::TypeTiny provides a few handy functions for testing type constraints.
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.
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).
Please report any bugs to https://github.com/tobyink/p5-type-tiny/issues.
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.
Toby Inkster <tobyink@cpan.org>.
This software is copyright (c) 2013-2014, 2017-2024 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.