=head1 NAME Test::Spy::Method - mocked method metadata =head1 SYNOPSIS my $method = $spy->add_method('method_name'); $method->should_call(sub { print 'called!'; }); ok !$method->was_called; =head1 DESCRIPTION This class objects let you set return values and examine call data of a specific method. =head2 Method call result methods The final method will return on throw whatever was last specified. Calling C will remove the exception throwing, if it was set up with C, and vice versa. =head3 should_return $method->should_return(@returns); Sets up the return value of the method as specified in C<@returns>. If it consists of just one element, method will return it as scalar. Otherwise, it will return the entire C<@returns> array as a list. Returns C<$self>, for chaining. =head3 should_call $method->should_call(sub { ... }); Sets up the method to call the subroutine reference argument. This subroutine will get all the regular method parameters, including C<$self>. The subroutine should return whatever the actual method should return. Returns C<$self>, for chaining. =head3 should_throw $method->should_throw('text exception'); $method->should_throw($exception_object); Instead of returning a specific value or calling a subroutine, the method can be set to always throw a given exception (a scalar value). Returns C<$self>, for chaining. =head2 Call history methods These methods are the same as documented in L, but when called on this class objects, you don't need to setup L. =head1 SEE ALSO L