phpman > perldoc > Test::Unit::Assertion::CodeRef(3pm)

Markdown | JSON | MCP    

NAME
    Test::Unit::Assertion::CodeRef - A delayed evaluation assertion using a Coderef

SYNOPSIS
        require Test::Unit::Assertion::CodeRef;

        my $assert_eq =
          Test::Unit::Assertion::CodeRef->new(sub {
            $_[0] eq $_[1]
              or Test::Unit::Failure->throw(-text =>
                                              "Expected '$_[0]', got '$_[1]'\n");
          });

        $assert_eq->do_assertion('foo', 'bar');

    Although this is how you'd use Test::Unit::Assertion::CodeRef directly, it is more usually used
    indirectly via Test::Unit::Test::assert, which instantiates a Test::Unit::Assertion::CodeRef
    when passed a Coderef as its first argument.

IMPLEMENTS
    Test::Unit::Assertion::CodeRef implements the Test::Unit::Assertion interface, which means it
    can be plugged into the Test::Unit::TestCase and friends' "assert" method with no ill effects.

DESCRIPTION
    This class is used by the framework to allow us to do assertions in a 'functional' manner. It is
    typically used generated automagically in code like:

        $self->assert(sub {
                        $_[0] == $_[1]
                          or $self->fail("Expected $_[0], got $_[1]");
                      }, 1, 2);

    (Note that if Damian Conway's Perl6 RFC for currying ever comes to pass then we'll be able to do
    this as:

        $self->assert(^1 == ^2 || $self->fail("Expected ^1, got ^2"), 1, 2)

    which will be nice...)

    If you have a working B::Deparse installed with your perl installation then, if an assertion
    fails, you'll see a listing of the decompiled coderef (which will be sadly devoid of comments,
    but should still be useful)

AUTHOR
    Copyright (c) 2001 Piers Cawley <pdcawley AT iterative-software.com>.

    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::TestCase

    *   Test::Unit::Assertion

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