Test2::Bundle::More − ALMOST a drop−in replacement for Test::More.
This bundle is intended to be a (mostly) drop-in replacement for Test::More. See "KEY DIFFERENCES FROM Test::More" for details.
use
Test2::Bundle::More;
ok(1, "pass");
...
done_testing;
This loads Test2::Plugin::ExitSummary.
These are from
Test2::Tools::Basic. See Test2::Tools::Basic for details.
ok($bool, $name)
pass($name)
fail($name)
skip($why, $count)
$todo = todo($why)
diag($message)
note($message)
plan($count)
skip_all($why)
done_testing()
BAIL_OUT($why)
These are from
Test2::Tools::ClassicCompare. See
Test2::Tools::ClassicCompare for details.
is($got, $want, $name)
isnt($got, $donotwant, $name)
like($got, qr/match/, $name)
unlike($got, qr/mismatch/, $name)
is_deeply($got, $want, "Deep compare")
cmp_ok($got, $op, $want, $name)
These are from
Test2::Tools::Class. See Test2::Tools::Class for details.
isa_ok($thing, @classes)
can_ok($thing, @subs)
This is from
Test2::Tools::Subtest. It is called subtest_streamed() in
that package.
subtest $name => sub { ... }
You cannot plan at import.
THIS WILL NOT WORK:
use Test2::Bundle::More tests => 5;
Instead you must plan in a separate statement:
use
Test2::Bundle::More;
plan 5;
You have three subs imported for use in planning
Use plan($count), skip_all($reason), or done_testing() for your planning.
isa_ok accepts different arguments
"isa_ok" in Test::More was:
isa_ok($thing, $isa, $alt_thing_name);
This was very inconsistent with tools like "can_ok($thing, @subs)".
In Test2::Bundle::More, isa_ok() takes a $thing and a list of @isa.
isa_ok($thing, $class1, $class2, ...);
$TODO
See todo().
use_ok()
require_ok()
These are not necessary. Use "use" and "require" directly. If there is an error loading the module the test will catch the error and fail.
todo_skip()
Not necessary.
eq_array()
eq_hash()
eq_set()
Discouraged in Test::More.
explain()
This started a fight between Test developers, who may now each write their own implementations in Test2. (See explain in Test::Most vs Test::More. Hint: Test::Most wrote it first, then Test::More added it, but broke compatibility).
new_ok()
Not necessary.
The source code repository for Test2−Suite can be found at https://github.com/Test−More/Test2−Suite/.
Chad Granum <[email protected]>
Chad Granum <[email protected]>
Copyright 2018 Chad Granum <[email protected]>.
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/