NAME T - Encapsulate testing tools instead of cluttering your namespace. DESCRIPTION This module collection makes it possible to use popular testing tools such as Test::More or Test2::Bundle::Extended without cluttering up your namespace. Under the hood all the work is done by Import::Box which was created specifically to implement this. SYNOPSIS BOX FUNCTIONS use T 'More'; # Loads Test::More, and provides the t() box function use T2 'Basic'; # Loads Test2::Tools::Basic, and provides the t2() function use T2::B 'Extended'; # Loads Test2::Bundle::Extended, also provides/appends to the t2() function use T2::P 'SRand'; # Loads Test2::Plugin::SRand, and provides the t2p() function t->is('a', 'a', "Can run Test::More::is()"); t2->is('a', 'a', "Can run Test2::Tools::Compare::is()"); # (Provided by the extended bundle) # Alternate syntax: t is => ('a', 'a'); t2 is => ('a', 'a'); OO use T; use T2; use T2::B; my $t = T->new('More'); # Loads Test::More into $t my $t2 = T2->new('Basic'); # Loads Test2::Tools::Basic into $t2 my $t2b = T2::B->new('Extended'); # Loads Test2::Bundle::Extended into $t2b $t->is('a', 'a', "Can run Test::More::is()"); $t2->ok(1, "ok from Test2::Tools::Basic"); $t2b->is('a', 'a', "Can run Test2::Tools::Compare::is()"); # Indirect syntax (just say NO!) is $t('a', 'a'); ok $t2(1, "pass"); is $t2b('a', 'a'); PACKAGES T This is used for boxing "Test::" modules into the "t()" box. T2 This is used for boxing "Test2::Tools::" modules into the "t2()" box. T2::B This is used for boxing "Test2::Bundle::" modules into the "t2()" box. T2::P This is used for boxing "Test2::Plugin::" modules into the "t2p()" box. A plugin should never actually export anything, so this is actually just a shortcut for loading plugins. METHODS t->import($MODULE) $t->import($MODULE) t->import($MODULE => \@IMPORT_ARGS) $t->import($MODULE => \@IMPORT_ARGS) This will load $MODULE and place the exports into the box instead of your namespace. A prefix is automatically prepended to $MODULE, which prefix depends on the class used for boxing. To avoid the prefix you can append '+' to the front of $MODULE: t->import('+My::Module'); T Prefixes with "Test::" T2 Prefixes with "Test2::Tools::" T2::B Prefixes with "Test2::Bundle::" T2::P Prefixes with "Test2::Plugin::" SEE ALSO Import::Box - Everything here is based off of this module. SOURCE The source code repository for T can be found at http://github.com/Test-More/T/. MAINTAINERS Chad Granum AUTHORS Chad Granum COPYRIGHT Copyright 2016 Chad Granum . This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://dev.perl.org/licenses/