Override subroutines in a module for unit testing
'Test::MockModule' lets you temporarily redefine subroutines in other packages for the purposes of unit testing.
A 'Test::MockModule' object is set up to mock subroutines for a given module. The object remembers the original subroutine so it can be easily restored. This happens automatically when all MockModule objects for the given module go out of scope, or when you 'unmock()' the subroutine.