# phpman > perldoc > Test::TypeTiny

## NAME
    [Test::TypeTiny](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3ATypeTiny/markdown) - useful functions for testing the efficacy of type constraints

## SYNOPSIS
       use strict;
       use warnings;
       use [Test::More](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AMore/markdown);
       use [Test::TypeTiny](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3ATypeTiny/markdown);

       use [Types::Mine](https://www.chedong.com/phpMan.php/perldoc/Types%3A%3AMine/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3ATypeTiny/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AFatal%3A%3Amatchfor/markdown).

## 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
    [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown).

    For an alternative to "should_pass", see [Test::Deep::Type](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3ADeep%3A%3AType/markdown) which will happily accept a [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown)
    type constraint instead of a [MooseX::Types](https://www.chedong.com/phpMan.php/perldoc/MooseX%3A%3ATypes/markdown) one.

## AUTHOR
    Toby Inkster <<tobyink@cpan.org>>.

## COPYRIGHT AND LICENCE
    This software is copyright (c) 2013-2014, 2017-2021 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.

## DISCLAIMER OF WARRANTIES
    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.

