perldoc > Test::Unit::Assertion::CodeRef

📖 NAME

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

🚀 Quick Reference

Use CaseCommandDescription
Create a code ref assertion Test::Unit::Assertion::CodeRef->new(sub { ... }) Instantiate assertion with a callback that evaluates the test
Execute assertion with arguments $assert->do_assertion('expected', 'actual') Run the callback with given arguments; throws Failure on mismatch
Use indirectly via assert method $self->assert(sub { ... }, $expected, $actual) Framework automatically wraps Coderef into Test::Unit::Assertion::CodeRef
Enable decompiled output on failure B::Deparse installed If B::Deparse is available, failure shows decompiled coderef for debugging

📖 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::Assertion::CodeRef
📖 NAME 🚀 Quick Reference 📖 SYNOPSIS ⚙️ IMPLEMENTS 📝 DESCRIPTION 👤 AUTHOR 🔗 SEE ALSO

Generated by phpman v4.9.26-5-g7740029 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-08-15 20:55 @216.73.216.208
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!