NAME
Test::Resub - Lexically scoped subroutine replacement, primarily
for unit testing
SYNOPSIS
use Test::More tests => 4;
use Test::Resub qw(resub);
{
package Somewhere;
sub show {
my ($class, $message) = @_;
return "$class, $message";
}
}
# sanity
is( Somewhere->show('beyond the sea'), 'Somewhere, beyond the sea' );
# scoped replacement of subroutine with argument capturing
{
my $rs = resub 'Somewhere::show', sub { 'hi' }, capture => 1;
is( Somewhere->show('over the rainbow'), 'hi' );
is_deeply( $rs->method_args, [['over the rainbow']] );
}
# scope ends, resub goes away, original code returns
is( Somewhere->show('waiting for me'), 'Somewhere, waiting for me' );
DESCRIPTION
This module allows you to temporarily replace a subroutine/method with
arbitrary code. Later, you can tell how many times was it called and
with what arguments each time. You can also specify that the subrou-
tine/method must get called, must not get called, or may be optionally
called.
INSTALLATION
To install this module, run the following commands:
perl Makefile.PL
make
make test
make install
SUPPORT AND DOCUMENTATION
After installing, you can find documentation for this module with the perldoc command.
perldoc Test::Resub
You can also look for information at:
Search CPAN
http://search.cpan.org/dist/Test-Resub
CPAN Request Tracker:
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Test-Resub
AnnoCPAN, annotated CPAN documentation:
http://annocpan.org/dist/Test-Resub
CPAN Ratings:
http://cpanratings.perl.org/d/Test-Resub
COPYRIGHT AND LICENCE
Copyright (C) 2001-2008 Aruba Networks, Inc.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.