NAME
Venus::Role::Mockable - Mockable Role
ABSTRACT
Mockable Role for Perl 5
SYNOPSIS
package Example;
use Venus::Class 'with';
with 'Venus::Role::Mockable';
sub execute {
[1..4];
}
package main;
my $example = Example->new;
# my $mock = $example->mock(execute => sub {
# my ($next) = @_;
#
# return sub {
# [@{$next->()}, @_]
# }
# });
# sub { ... }
DESCRIPTION
This package provides a mechanism for mocking subroutines.
METHODS
This package provides the following methods:
mock
mock(Str $name, CodeRef $code) (CodeRef)
The mock method mocks the subroutine specified using the callback given. The coderef provided will be passed the original subroutine coderef as its first argument. The coderef provided should always return a coderef that will serve as the subroutine mock.
Since 2.32
- mock example 1
-
package main; my $example = Example->new; my $mock = $example->mock(execute => sub { my ($next) = @_; return sub { [@{$next->()}, @_] } }); # sub { ... } # $example->execute; # [1..4] # $example->execute(5, 6); # [1..6]
AUTHORS
Awncorp, awncorp@cpan.org
LICENSE
Copyright (C) 2000, Al Newkirk.
This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.