Test::Identity - assert the referential identity of a reference
Test::Identity
use Test::More tests => 2; use Test::Identity; use Thingy; { my $thingy; sub get_thingy { return $thingy } sub set_thingy { $thingy = shift; } } identical( get_thingy, undef, 'get_thingy is undef' ); my $test_thingy = Thingy->new; set_thingy $test_thingy; identical( get_thingy, $thingy, 'get_thingy is now $test_thingy' );
This module provides a single testing function, identical. It asserts that a given reference is as expected; that is, it either refers to the same object or is undef. It is similar to Test::More::is except that it uses refaddr, ensuring that it behaves correctly even if the references under test are objects that overload stringification or numification.
identical
undef
Test::More::is
refaddr
It also provides better diagnostics if the test fails:
$ perl -MTest::More=tests,1 -MTest::Identity -e'identical [], {}' 1..1 not ok 1 # Failed test at -e line 1. # Expected an anonymous HASH ref, got an anonymous ARRAY ref # Looks like you failed 1 test of 1. $ perl -MTest::More=tests,1 -MTest::Identity -e'identical [], []' 1..1 not ok 1 # Failed test at -e line 1. # Expected an anonymous ARRAY ref to the correct object # Looks like you failed 1 test of 1.
Asserts that $got refers to the same object as $expected.
Paul Evans <leonerd@leonerd.org.uk>
To install Test::Identity, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::Identity
CPAN shell
perl -MCPAN -e shell install Test::Identity
For more information on module installation, please visit the detailed CPAN module installation guide.