NAME
Test::Mock::Simple - A simple way to mock out parts of or a whole module.
SYNOPSIS
use
Test::Mock::Simple;
my
$total
= 0;
# Original::Module has methods increase, decrease, and sum
my
$mock
= Test::Mock::Simple->new(
module
=>
'Original::Module'
);
$mock
->add(
increase
=>
sub
{
shift
;
return
$total
+=
shift
; });
$mock
->add(
decrease
=>
sub
{
shift
;
return
$total
-=
shift
; });
my
$obj
= Original::Module->new();
$obj
->increase(5);
$obj
->decrease(2);
$obj
->sum .
"\n"
;
# prints 3
DESCRIPTION
This is a simple way of overriding any number of methods for a give object/class.
Can be used directly in test (or any) files, but best practice (IMHO) is to create a 'Mock' module and using it instead of directly using the module in your tests. The goal is to write a test which passes whether you're Mocking or not. See TEST_MOCK_SIMPLE_DISABLE below.
Why another Mock module? I needed something simple with no bells or whistles that only overrode certain methods of a given module. It's more work, but there aren't any conflicts.
Environmental Variables
Methods
- new
-
Create a new mock simple object.
- add
-
This allows you to specify a new method (subroutine) that will override the existing one. Think of it as 'add'ing a mocked method to override the existing one.
AUTHOR
Erik Tank, <tank@jundy.com<gt>
COPYRIGHT AND LICENSE
Copyright (C) 2013 by Erik Tank
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.