Test2::...Extended(3)

πŸ“¦ version 1.302214, in opensuse-leap 16.0

✨ 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 export ok().
  • ok => {-as => 'my_ok'} β€” actually, go ahead and import ok() but under the name my_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 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