Test2::...Extended(3)
β¨ NAME β¨
Test2::Bundle::Extended β old name for Test2::V0. Youβre reading the Test2::...Extended(3) page from User Contributed Perl Documentation, and yes bestie, this is the whole vibe. π
π *** DEPRECATED *** π
This bundle has been renamed to Test2::V0, in which the ':v1' tag has been removed as unnecessary. π
πΈ DESCRIPTION πΈ
Okay so this is the big-daddy bundle. It includes nearly every tool, and several plugins, that the Test2 author uses. This bundle is used extensively to test Test2::Suite itself. β¨
π¦ SYNOPSIS π¦
use Test2::Bundle::Extended ':v1';
ok(1, "pass");
...
done_testing;
π RESOLVING CONFLICTS WITH MOOSE π
use Test2::Bundle::Extended '!meta';
Moose and Test2::Bundle::Extended both export very different meta() subs. Adding '!meta' to the import args will prevent the sub from being imported. This bundle also exports the sub under the name meta_check() so you can use that spelling as an alternative. π¦
π TAGS π
:v1 :DEFAULT
The following are all identical, no cap:
use Test2::Bundle::Extended;
use Test2::Bundle::Extended ':v1';
use Test2::Bundle::Extended ':DEFAULT';
π RENAMING ON IMPORT π
use Test2::Bundle::Extended ':v1', '!ok', ok => {-as => 'my_ok'};
This bundle uses Importer for exporting, as such you can use any arguments it accepts. β¨
Explanation:
':v1'β use the default tag, all default exports.'!ok'β do not exportok().ok => {-as => 'my_ok'}β actually, go ahead and importok()but under the namemy_ok().
If you did not add the '!ok' argument then you would have both ok() and my_ok(). π
π₯ PRAGMAS π₯
All of these can be disabled via individual import arguments, or by the -no_pragmas argument. π«Ά
use Test2::Bundle::Extended -no_pragmas => 1;
π₯ STRICT π₯
strict is turned on for you. You can disable this with the -no_strict or -no_pragmas import arguments:
use Test2::Bundle::Extended -no_strict => 1;
π WARNINGS π
warnings are turned on for you. You can disable this with the -no_warnings or -no_pragmas import arguments:
use Test2::Bundle::Extended -no_warnings => 1;
π UTF8 π
This is actually done via the Test2::Plugin::UTF8 plugin, see the PLUGINS section for details. π§
Note: -no_pragmas => 1 will turn off the entire plugin.
π PLUGINS π
π SRAND π
See Test2::Plugin::SRand.
This will set the random seed to today's date. You can provide an alternate seed with the -srand import option:
use Test2::Bundle::Extended -srand => 1234;
π UTF8 π
See Test2::Plugin::UTF8.
This will set the file, and all output handles (including formatter handles), to utf8. This will turn on the utf8 pragma for the current scope. β¨
This can be disabled using the -no_utf8 => 1 or -no_pragmas => 1 import arguments.
use Test2::Bundle::Extended -no_utf8 => 1;
π EXIT SUMMARY π
See Test2::Plugin::ExitSummary.
This plugin has no configuration. π
π§ API FUNCTIONS π§
See Test2::API for these:
$ctx = context()
$events = intercept { ... }
π TOOLS π
π TARGET π
See Test2::Tools::Target.
You can specify a target class with the -target import argument. If you do not provide a target then $CLASS and CLASS() will not be imported.
use Test2::Bundle::Extended -target => 'My::Class';
print $CLASS; # My::Class
print CLASS(); # My::Class
Or you can specify names:
use Test2::Bundle::Extended -target => { pkg => 'Some::Package' };
pkg()->xxx; # Call 'xxx' on Some::Package
$pkg->xxx; # Same
$CLASS Package variable that contains the target class name.
$class = CLASS() Constant function that returns the target class name.
π¦ DEFER π¦
See Test2::Tools::Defer.
def $func => @args;
do_def()
β BASIC β
See Test2::Tools::Basic.
ok($bool, $name)
pass($name)
fail($name)
diag($message)
note($message)
$todo = todo($reason)
todo $reason => sub { ... }
skip($reason, $count)
plan($count)
skip_all($reason)
done_testing()
bail_out($reason)
π COMPARE π
See Test2::Tools::Compare.
is($got, $want, $name)
isnt($got, $do_not_want, $name)
like($got, qr/match/, $name)
unlike($got, qr/mismatch/, $name)
$check = match(qr/pattern/)
$check = mismatch(qr/pattern/)
$check = validator(sub { return $bool })
$check = hash { ... }
$check = array { ... }
$check = bag { ... }
$check = object { ... }
$check = meta { ... }
$check = number($num)
$check = string($str)
$check = check_isa($class_name)
$check = in_set(@things)
$check = not_in_set(@things)
$check = check_set(@things)
$check = item($thing)
$check = item($idx => $thing)
$check = field($name => $val)
$check = call($method => $expect)
$check = call_list($method => $expect)
$check = call_hash($method => $expect)
$check = prop($name => $expect)
$check = check($thing)
$check = T()
$check = F()
$check = D()
$check = DF()
$check = E()
$check = DNE()
$check = FDNE()
$check = U()
$check = L()
$check = exact_ref($ref)
end()
etc()
filter_items { grep { ... } @_ }
$check = event $type => ...
@checks = fail_events $type => ...
π CLASSIC COMPARE π
See Test2::Tools::ClassicCompare.
cmp_ok($got, $op, $want, $name)
πΈ SUBTEST πΈ
See Test2::Tools::Subtest.
subtest $name => sub { ... }
(Note: This is called subtest_buffered() in the Tools module.)
π CLASS π
See Test2::Tools::Class.
can_ok($thing, @methods)
isa_ok($thing, @classes)
DOES_ok($thing, @roles)
π ENCODING π
See Test2::Tools::Encoding.
set_encoding($encoding)
π EXPORTS π
See Test2::Tools::Exports.
imported_ok('function', '$scalar', ...)
not_imported_ok('function', '$scalar', ...)
π¦ REF π¦
See Test2::Tools::Ref.
ref_ok($ref, $type)
ref_is($got, $want)
ref_is_not($got, $do_not_want)
π MOCK π
See Test2::Tools::Mock.
$control = mock ...
$bool = mocked($thing)
π EXCEPTION π
See Test2::Tools::Exception.
$exception = dies { ... }
$bool = lives { ... }
$bool = try_ok { ... }
π WARNINGS π
See Test2::Tools::Warnings.
$count = warns { ... }
$warning = warning { ... }
$warnings_ref = warnings { ... }
$bool = no_warnings { ... }
π SOURCE π
The source code repository for Test2-Suite can be found at https://github.com/Test-More/test-more/. π₯
π MAINTAINERS π
Chad Granum <exodist@cpan.org>
β AUTHORS β
Chad Granum <exodist@cpan.org>
π COPYRIGHT π
Copyright Chad Granum <exodist@cpan.org>.
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/
okay bestie, thatβs the whole page β signing off from the perl v5.42.0 edition dated 2025-07-28 πβ¨π
π¦ where this page comes from
- opensuse-leap 16.0: perl-Test-Simple 1.302214-bp160.1.2 Β· Artistic-1.0 OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms