Test::Double - Perl extension for Test Double.
package Foo; sub new { bless {}, shift } sub bar { 'bar' } # in your tests use Test::More; use Test::Double; my $foo = Foo->new; is $foo->bar, 'bar', 'bar() returns "bar"'; # stub out stub($foo)->bar('BAR'); is $foo->bar, 'BAR', 'stubbed bar() returns "BAR"'; # mock out mock($foo)->expects('bar')->returns('BAR'); is $foo->bar, 'BAR', 'mocked bar() returns 'BAR'; done_testing;
Test::Double is a Perl extension for Test Double.
Returns stub object. This object accepts any methods for stubbing using AUTOLOAD mechanism.
stub($object)->some_method($expected_value); # after, $object->some_method() returns $expected_value
See http://xunitpatterns.com/Test%20Stub.html
Returns mock object. This object can be defined expectation by calling expects() method.
mock($object)->expects('some_method'); # after, $object->some_method() returns $expected_value
See Test::Double::Mock
NAKAGAWA Masaki <masaki@cpan.org>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
http://xunitpatterns.com/Test%20Double.html
To install Test::Double, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::Double
CPAN shell
perl -MCPAN -e shell install Test::Double
For more information on module installation, please visit the detailed CPAN module installation guide.