Venus::Role::Mockable - Mockable Role
Mockable Role for Perl 5
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 { ... }
This package provides a mechanism for mocking subroutines.
This package provides the following methods:
mock(string $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
2.32
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]
Awncorp, awncorp@cpan.org
awncorp@cpan.org
Copyright (C) 2022, Awncorp, awncorp@cpan.org.
This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.
To install Venus, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Venus
CPAN shell
perl -MCPAN -e shell install Venus
For more information on module installation, please visit the detailed CPAN module installation guide.