'With debug=True, all recorded method calls will be printed as
they happen.
With fail_fast=True, unexpected calls will immediately cause an
exception to be raised.  With False, they will be silently recorded and
only reported when check_playback() is called.'

def __init__(self, debug=False, fail_fast=True, ut=None):

    self.recording = collections.deque()
    self.errors = []
    self._stubs = []
    self._debug = debug
    self._fail_fast = fail_fast
    self._ut = ut
