The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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