phpman > perldoc > Test::Unit::Assert(3pm)

Markdown | JSON | MCP    

NAME
    Test::Unit::Assert - unit testing framework assertion class

SYNOPSIS
        # this class is not intended to be used directly,
        # normally you get the functionality by subclassing from
        # Test::Unit::TestCase

        use Test::Unit::TestCase;

        # more code here ...

        $self->assert($your_condition_here, $your_optional_message_here);

        # or, for regular expression comparisons:
        $self->assert(qr/some_pattern/, $result);

        # or, for functional style coderef tests:
        $self->assert(sub {
                          $_[0] == $_[1]
                            or $self->fail("Expected $_[0], got $_[1]");
                      }, 1, 2);

        # or, for old style regular expression comparisons
        # (strongly deprecated; see warning below)
        $self->assert(scalar("foo" =~ /bar/), $your_optional_message_here);

        # Or, if you don't mind us guessing
        $self->assert_equals('expected', $actual [, $optional_message]);
        $self->assert_equals(1,$actual);
        $self->assert_not_equals('not expected', $actual [, $optional_message]);
        $self->assert_not_equals(0,1);

        # Or, if you want to force the comparator
        $self->assert_num_equals(1,1);
        $self->assert_num_not_equals(1,0);
        $self->assert_str_equals('string','string');
        $self->assert_str_not_equals('stringA', 'stringB');

        # assert defined/undefined status
        $self->assert_null(undef);
        $self->assert_not_null('');

DESCRIPTION
    This class contains the various standard assertions used within the framework. With the
    exception of the "assert(CODEREF, @ARGS)", all the assertion methods take an optional message
    after the mandatory fields. The message can either be a single string, or a list, which will get
    concatenated.

    Although you can specify a message, it is hoped that the default error messages generated when
    an assertion fails will be good enough for most cases.

  Methods
    assert_equals(EXPECTED, ACTUAL [, MESSAGE])
    assert_not_equals(NOTEXPECTED, ACTUAL [, MESSAGE])
        The catch all assertions of (in)equality. We make a guess about whether to test for numeric
        or string (in)equality based on the first argument. If it looks like a number then we do a
        numeric test, if it looks like a string, we do a string test.

        If the first argument is an object, we check to see if the '==' operator has been overloaded
        and use that if it has, otherwise we do the string test.

    assert_num_equals
    assert_num_not_equals
        Force numeric comparison with these two.

    assert_str_equals
    assert_str_not_equals
        Force string comparison

    assert_matches(qr/PATTERN/, STRING [, MESSAGE])
    assert_does_not_match(qr/PATTERN/, STRING [, MESSAGE])
        Assert that STRING does or does not match the PATTERN regex.

    assert_deep_equals(A, B [, MESSAGE ])
        Assert that reference A is a deep copy of reference B. The references can be complex, deep
        structures. If they are different, the default message will display the place where they
        start differing.

        NOTE This is NOT well-tested on circular references. Nor am I quite sure what will happen
        with filehandles.

    assert_null(ARG [, MESSAGE])
    assert_not_null(ARG [, MESSAGE])
        Assert that ARG is defined or not defined.

    assert(BOOLEAN [, MESSAGE])
        Checks if the BOOLEAN expression returns a true value that is neither a CODE ref nor a
        REGEXP. Note that MESSAGE is almost non optional in this case, otherwise all the assertion
        has to go on is the truth or otherwise of the boolean.

        If you want to use the "old" style for testing regular expression matching, please be aware
        of this: the arguments to assert() are evaluated in list context, e.g. making a failing
        regex "pull" the message into the place of the first argument. Since this is usually just
        plain wrong, please use scalar() to force the regex comparison to yield a useful boolean
        value.

    assert(qr/PATTERN/, ACTUAL [, MESSAGE])
        Matches ACTUAL against the PATTERN regex. If you omit MESSAGE, you should get a sensible
        error message.

    assert(CODEREF, @ARGS)
        Calls CODEREF->(@ARGS). Assertion fails if this returns false (or throws
        Test::Unit::Failure)

    assert_raises(EXCEPTION_CLASS, CODEREF [, MESSAGE])
        Calls CODEREF->(). Assertion fails unless an exception of class EXCEPTION_CLASS is raised.

    multi_assert(ASSERTION, @ARGSETS)
        Calls $self->assert(ASSERTION, @$ARGSET) for each $ARGSET in @ARGSETS.

    ok(@ARGS)
        Simulates the behaviour of the Test module. Deprecated.

AUTHOR
    Copyright (c) 2000-2002, 2005 the PerlUnit Development Team (see Test::Unit or the AUTHORS file
    included in this distribution).

    All rights reserved. This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

SEE ALSO
    *   Test::Unit::Assertion

    *   Test::Unit::Assertion::Regexp

    *   Test::Unit::Assertion::CodeRef

    *   Test::Unit::Assertion::Boolean

    *   Test::Unit::TestCase

    *   Test::Unit::Exception

    *   The framework self-testing suite (t::tlib::AllTests)

Test::Unit::Assert(3pm)
NAME SYNOPSIS DESCRIPTION
Methods assert_equals(EXPECTED, ACTUAL [, MESSAGE]) assert_not_equals(NOTEXPECTED, ACTUAL [, MESSAGE]) assert_matches(qr/PATTERN/, STRING [, MESSAGE]) assert_does_not_match(qr/PATTERN/, STRING [, MESSAGE]) assert_deep_equals(A, B [, MESSAGE ]) assert_null(ARG [, MESSAGE]) assert_not_null(ARG [, MESSAGE]) assert_raises(EXCEPTION_CLASS, CODEREF [, MESSAGE]) multi_assert(ASSERTION, @ARGSETS) ok(@ARGS)
AUTHOR SEE ALSO

Generated by phpman v3.7.12 Author: Che Dong Under GNU General Public License
2026-06-13 17:37 @216.73.216.233
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top