The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Test::Mini::Assertions - Basic Assertions for Test::Mini

METHODS

Exported Functions

assert
    assert($test, $msg) 

Asserts that $test is truthy, and throws a Test::Mini::Exception::Assert if that assertion fails.

Examples:

    assert 1;
    
    assert 'true', 'Truth should shine clear';

Parameters:

  • $test -- The value to test.

  • (String) $msg -- An optional description.

assert_block
    assert_block($block, $msg) 


    Deprecated. This assertion offers little advantage over the base L<<<<
    S<<<<< #assert >>>>>|Test::Mini::Assertions/assert >>>>. This will be
    removed in v2.0.0.

Asserts that the given code reference returns a truthy value.

Examples:

    assert_block { 'true' };
    
    assert_block \&some_sub, 'expected better from &some_sub';

Parameters:

  • (CODE) $block -- The code reference to test.

  • (String) $msg -- An optional description.

assert_can
Aliased as: assert_responds_to
    assert_can($obj, $method, $msg) 

Verifies that the given $obj is capable of responding to the given $method name.

Examples:

    assert_can $date, 'day_of_week';
    
    assert_can $time, 'seconds', '$time cannot respond to #seconds';

Parameters:

  • $obj -- The object being tested.

  • (String) $method -- The method name being checked for.

  • (String) $msg -- An optional description.

assert_contains
Aliased as: assert_includes
    assert_contains($collection, $obj, $msg) 

Verifies that the given $collection contains the given $obj as a member.

Examples:

    assert_contains [qw/ 1 2 3 /], 2;
    
    assert_contains { a => 'b' }, 'a';  # 'b' also contained
    
    assert_contains 'expectorate', 'xp';
    
    assert_contains Collection->new(1, 2, 3), 2;  # if Collection->contains(2)

Parameters:

  • (Array|Hash|String|#contains) $collection -- The collection to test.

  • $obj -- The needle to find.

  • (String) $msg -- An optional description.

assert_defined
Aliased as: refute_undef
    assert_defined($obj, $msg) 

Validates that the given $obj is defined.

Examples:

    assert_defined $value;  # if defined $value

Parameters:

  • $obj -- The value to check.

  • (String) $msg -- An optional description.

assert_dies
    assert_dies($sub, $error, $msg) 

Tests that the supplied code block dies, and fails if it succeeds. If $error is provided, the error message in $@ must contain it.

Examples:

    assert_dies { die 'LAGHLAGHLAGHL' };
    
    assert_dies { die 'Failure on line 27 in Foo.pm' } 'line 27';

Parameters:

  • (CODE) $sub -- The code that should die.

  • (String) $error -- The (optional) error substring expected.

  • (String) $msg -- An optional description.

assert_empty
    assert_empty($collection, $msg) 

Verifies the emptiness of a collection.

Examples:

    assert_empty [];
    
    assert_empty {};
    
    assert_empty '';
    
    assert_empty Collection->new();  # if Collection->new()->is_empty()

Parameters:

  • (Array|Hash|String|#is_empty) $collection -- The collection under scrutiny.

  • (String) $msg -- An optional description.

assert_equal
Aliased as: assert_eq
    assert_equal($actual, $expected, $msg) 

Checks two given arguments for equality.

Examples:

    assert_equal 3.000, 3;
    
    assert_equal lc('FOO'), 'foo';
    
    assert_equal [qw/ 1 2 3 /], [ 1, 2, 3 ];
    
    assert_equal { a => 'eh' }, { a => 'eh' };
    
    assert_equal Class->new(), $expected;  # if $expected->equals(Class->new())

Parameters:

  • $actual -- The value under test.

  • $expected -- The expected value.

  • (String) $msg -- An optional description.

assert_in_delta
    assert_in_delta($actual, $expected, $delta, $msg) 

Checks that the difference between $actual and $expected is less than $delta.

Examples:

    assert_in_delta 1.001, 1;
    
    assert_in_delta 104, 100, 5;

Parameters:

  • (Number) $actual -- The tested value.

  • (Number) $expected -- The static value.

  • (Number) $delta -- The expected delta. Defaults to 0.001.

  • (String) $msg -- An optional description.

assert_in_epsilon
    assert_in_epsilon($actual, $expected, $epsilon, $msg) 

Checks that the difference between $actual and $expected is less than a given fraction of the smaller of the two numbers.

Examples:

    assert_in_epsilon 22.0 / 7.0, Math::Trig::pi;
    
    assert_in_epsilon 220, 200, 0.10

Parameters:

  • (Number) $actual -- The tested value.

  • (Number) $expected -- The static value.

  • (Number) $epsilon -- The expected tolerance factor. Defaults to 0.001.

  • (String) $msg -- An optional description.

assert_instance_of
    assert_instance_of($obj, $type, $msg) 

Validates that the given object is an instance of $type.

Examples:

    assert_instance_of MyApp::Person->new(), 'MyApp::Person';

Parameters:

  • $obj -- The instance to check.

  • (Class) $type -- The type to expect.

  • (String) $msg -- An optional description.

See Also:

assert_is_a
Aliased as: assert_isa
    assert_is_a($obj, $type, $msg) 

Validates that $obj inherits from $type.

Examples:

    assert_is_a 'Employee', 'Employee';
    
    assert_is_a Employee->new(), 'Employee';
    
    assert_is_a 'Employee', 'Person'; # assuming Employee->isa('Person')
    
    assert_is_a Employee->new(), 'Person';

Parameters:

  • $obj -- The instance or class to check.

  • (Class) $type -- The expected superclass.

  • (String) $msg -- An optional description.

assert_match
    assert_match($string, $pattern, $msg) 

Validates that the given $string matches the given $pattern.

Examples:

    assert_match 'Four score and seven years ago...', qr/score/;

Parameters:

  • (String) $string -- The string to match.

  • (Regex) $pattern -- The regular expression to match against.

  • (String) $msg -- An optional description.

assert_undef
Aliased as: refute_defined
    assert_undef($obj, $msg) 

Validates that the given $obj is undefined.

Examples:

    assert_undef $value;  # if not defined $value

Parameters:

  • $obj -- The value to check.

  • (String) $msg -- An optional description.

flunk
    flunk($msg) 

Causes the current test to exit immediately with a failing status.

Parameters:

  • (String) $msg -- An optional description.

refute
    refute($test, $msg) 

Asserts that $test is falsey, and throws a Test::Mini::Exception::Assert if that assertion fails.

Examples:

    refute 0;
    
    refute undef, 'Deny the untruths';

Parameters:

  • $test -- The value to test.

  • (String) $msg -- An optional description.

refute_block
    refute_block($block, $msg) 


    Deprecated. This assertion offers little advantage over the base L<<<<
    S<<<<< #refute >>>>>|Test::Mini::Assertions/refute >>>>. This will be
    removed in v2.0.0.

Asserts that the given code reference returns a falsey value.

Examples:

    refute_block { '' };
    
    refute_block \&some_sub, 'expected worse from &some_sub';

Parameters:

  • (CODE) $block -- The code reference to test.

  • (String) $msg -- An optional description.

refute_can
Aliased as: refute_responds_to
    refute_can($obj, $method, $msg) 

Verifies that the given $obj is not capable of responding to the given $method name.

Examples:

    refute_can $date, 'to_time';
    
    refute_can $time, 'day', '$time cannot respond to #day';

Parameters:

  • $obj -- The object being tested.

  • (String) $method -- The method name being checked.

  • (String) $msg -- An optional description.

refute_contains
    refute_contains($collection, $obj, $msg) 

Verifies that the given $collection does not contain the given $obj as a member.

Examples:

    refute_contains [qw/ 1 2 3 /], 5;
    
    refute_contains { a => 'b' }, 'x';
    
    refute_contains 'expectorate', 'spec';
    
    refute_contains Collection->new(1, 2, 3), 5;  # unless Collection->contains(5)

Parameters:

  • (Array|Hash|String|#contains) $collection -- The collection to test.

  • $obj -- The needle to look for.

  • (String) $msg -- An optional description.

refute_empty
    refute_empty($collection, $msg) 

Verifies the non-emptiness of a collection.

Examples:

    refute_empty [ 1 ];
    
    refute_empty { a => 1 };
    
    refute_empty 'full';
    
    refute_empty Collection->new();  # unless Collection->new()->is_empty()

Parameters:

  • (Array|Hash|String|#is_empty) $collection -- The collection under scrutiny.

  • (String) $msg -- An optional description.

refute_equal
Aliased as: refute_eq
    refute_equal($actual, $unexpected, $msg) 

Checks two given arguments for inequality.

Examples:

    refute_equal 3.001, 3;
    
    refute_equal lc('FOOL'), 'foo';
    
    refute_equal [qw/ 1 23 /], [ 1, 2, 3 ];
    
    refute_equal { a => 'ae' }, { a => 'eh' };
    
    refute_equal Class->new(), $expected;  # unless $expected->equals(Class->new())

Parameters:

  • $actual -- The value under test.

  • $expected -- The tested value.

  • (String) $msg -- An optional description.

refute_in_delta
    refute_in_delta($actual, $expected, $delta, $msg) 

Checks that the difference between $actual and $expected is greater than $delta.

Examples:

    refute_in_delta 1.002, 1;
    
    refute_in_delta 106, 100, 5;

Parameters:

  • (Number) $actual -- The tested value.

  • (Number) $expected -- The static value.

  • (Number) $delta -- The delta $actual and $expected are expected to differ by. Defaults to 0.001.

  • (String) $msg -- An optional description.

refute_in_epsilon
    refute_in_epsilon($actual, $expected, $epsilon, $msg) 

Checks that the difference between $actual and $expected is greater than a given fraction of the smaller of the two numbers.

Examples:

    refute_in_epsilon 21.0 / 7.0, Math::Trig::pi;
    
    refute_in_epsilon 220, 200, 0.20

Parameters:

  • (Number) $actual -- The tested value.

  • (Number) $expected -- The static value.

  • (Number) $epsilon -- The factor by which $actual and $expected are expected to differ by. Defaults to 0.001.

  • (String) $msg -- An optional description.

refute_match
    refute_match($string, $pattern, $msg) 

Validates that the given $string does not match the given $pattern.

Examples:

    refute_match 'Four score and seven years ago...', qr/score/;

Parameters:

  • (String) $string -- The string to match.

  • (Regex) $pattern -- The regular expression to match against.

  • (String) $msg -- An optional description.

skip
    skip($msg) 

Allows the current test to be bypassed with an indeterminate status.

Parameters:

  • (String) $msg -- An optional description.

Class Methods

import
    import($class) 

Pulls all of the test-related methods into the calling package.