Test2::Bundle::More#

ALMOST a drop-in replacement for Test::More.

DESCRIPTION#

This bundle is intended to be a (mostly) drop-in replacement for Test::More. See “KEY DIFFERENCES FROM Test::More” for details.

SYNOPSIS#

use Test2::Bundle::More;

ok(1, "pass");

...

done_testing;

PLUGINS#

This loads Test2::Plugin::ExitSummary.

TOOLS#

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 { … }

KEY DIFFERENCES FROM Test::More#

  • 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, ...);
    

THESE FUNCTIONS AND VARIABLES HAVE BEEN REMOVED#

  • $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.

SOURCE#

The source code repository for Test2-Suite can be found at https://github.com/Test-More/test-more/.

MAINTAINERS#

AUTHORS#