Revision history for Mock-Sub
1.09 2017-12-28
- setting a return_value or side_effect when mocking one sub doesn't
affect any other subs mocked (fixes #25)
- params passed into a mocked sub will only be returned if
return_value is set to "params" (closes #26)
1.08 2017-12-21
- the mocked subs now return the parameters that were sent in to it if
return_value or side_effect have not been set (closes #24)
1.07 2016-10-05
- POD fix (closes #20)
- changed croak() to confess()
- you can now add "no_warnings => 1" to the 'use Mock::Sub' line to
disable warnings about mocking non-existent subs (closes #22)
1.06 2016-01-23
- new remock() method does what Child::mock() used to do.
- Child::mock() renamed to Child::_mock(), and is now private
(fixes #17)
- more documentation cleanup
1.05 2016-01-22
- added tests for mocked_objects()
- Child.pm now has basic pod (mostly to satisfy pod tests) (closes #15)
- added .list to MANIFEST.SKIP to ignore RHEL vendor specific build
files (reported by Denis Fateyev) (also #15)
- this was previously fixed (closes #13)
1.04 2016-01-08
- MANIFEST updates
1.03 2015-12-10
- completely reworked distribution into two modules (parent and Child)
- we now have the ability to mock out CORE::GLOBAL functions
(eg: caller()). You MUST do the mock within a BEGIN block
1.02 2015-12-09
- fixed bug where if the mocked sub isn't called, the original sub
wasn't being restored
- called_count() now returns 0 instead of undef if there isn't a count
- fix issue #11: called_count wasn't being reset to 0 after reset()
- side_effect param can now be sent into new() which will be retained
in all child objects created by mock()
- return_value param can be send into new(), passed into all child
objects
- added mocked_objects(), returns a list of objects that have mocked
subs (if unmocked(), obj won't be returned)
- added mocked_names(), same as mocked_objects() but returns the sub
names only
- mocked_state(), returns bool whether the named sub is currently
mocked
1.01 2015-12-08
- DESTROY() always calls unmock() now. The option to disable this has
been removed
0.11 2015-12-08
- if mock() is called in void context, we'll croak (except in the
instance where you're re-mocking an unmock()ed sub with the same
object)
- fixes bug where DESTROY() wasn't able to properly clean up prior
to END
0.10 2015-12-07
- all bugs fixed in this release reported by Joel Berger (jberger)
- fix issue #5: we now pass in any parameters passed to the mocked
function into the side_effect cref
- fix issue #6: return_value() now accepts lists (however, using the
param version of return_value, only a scalar is accepted).
- fix issue #8: called_with() now die()s if it's called before the
mocked sub has been
- fix issue #7: mocked sub (and the object) is now much more context
aware
- fix issue #9: DESTROY() now unmock()s by default
(keep_mock_on_destroy param to override)
0.09 2015-12-01
- mocking a non-existent sub is now allowed, and spits out a warning
message
- unmock() removes the symtab entry if mock() created a fake
(non-existent) sub entry in the symbol table
- added side_effect() and return_value()
0.08 2015-11-30
- fixes bug #3: add eval() in side_effect in SYNOPSIS
- fixes bug #2: having side_effect after return_value breaks t/06
- fixes bug #1: add called_with(), to extract the args passed in to
the mocked sub
- fixes bug #4: completely validate that the sub param is a valid sub
- 'main::' is now prepended to subs if they don't have a package
- side_effect now properly returns last expression evaluated
- side_effect and return_value can now be sent in simultaneously
0.07 2015-11-29
- code cleanup
- pod updates
- opened bug 1: need to add with_args()
0.04 2015-11-29
- added name()
- many more tests
- major POD updates/fixes
0.02 2015-11-29
- renamed project from Test::MockSub to Mock::Sub
- added numerous test files
- added initial POD
0.01 2015-11-29
- initial import