NAME

Evo::Test

VERSION

version 0.0405

SYNOPSYS

{

  package My::Foo;    ## no critic
  sub foo {'FOO'}
}

my $mock = mock('My::Foo::foo', sub { say "Mocked"; call_original() });
my $res = My::Foo->foo();
say $res;                            # FOO
say $mock->get_call(0)->result;      # FOO
say $mock->calls->[0]->args->[0];    # "My::Foo"

MOCK

my $mock = mock('My::Foo::foo', 1); # call original
my $mock = mock('My::Foo::foo', 0); # don't call anything
my $mock = mock('My::Foo::foo', sub { say "Mocked"; call_original() });

# rethrow error 
my $mock = mock('My::Foo::foo', rethrow => 1, patch => sub { die "Foo\n" });

my $res = My::Foo->foo();

# restore
undef $mock;

Create a mock for the subroutine. The subroutine will be restored when the mock object is destroyed. By default swallows all errors. You can pass rethrow as true, in this case exceptions will be recorder then rethrown up, so you will be able to catch them

AUTHOR

alexbyk.com

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by alexbyk.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.