Refactoring mock code

until you pop it out through the constructor, it’s object’s private business.

mocks rely on the boundaries being stable. If wrong on this, tests need to be rewritten, but the feedbak from tests allows stabilizing the boundaries further. And there are not that many tests to change as we test small pieces of code.

well-designed interactions should limit the impact of change