=encoding utf-8 =for stopwords =head1 NAME Test::Double - Perl extension for Test Double. =head1 SYNOPSIS 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')->at_most(2)->returns('BAR'); is $foo->bar, 'BAR', 'mocked bar() returns "BAR"'; my $result = Test::Double->verify_result; ok $result->{bar}->{at_most}; Test::Double->verify; Test::Double->reset; done_testing; =head1 DESCRIPTION Test::Double is a Perl extension for Test Double. =head1 METHODS =over 4 =item stub($object) 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 L =item mock($object) 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 L =item verify Verify how many times method calling, and method calling with what args. =item verify_result Returns verified result. my $result = Test::Double->verify_result; $result->{some_method}->{at_least}; # result->{what method}->{what expectation} =item reset Reset mocking objects. =back =head1 AUTHOR NAKAGAWA Masaki Emasaki@cpan.orgE =head1 LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L L, L =cut