title: How do you design a C++ application so that Mock Objects are easiest to use?
body: <p>I've never developed using Test Driven Development, and I've never used Mock Objects for unit testing. I've always unit tested simple objects that don't incorporate other aspects of the application, and then moved on to less simple objects that only reference objects that have already been unit tested.  This tends to progress until the final "unit" test is a component test.</p>
  
  <p>What design techniques are used to make the replacing of internal classes with Mock Objects as easy as possible?</p>
  
  <p>For example, in my code, I would include the header file for myDataClass within myWorkerClass.  myDataClass is constructed by myWorkerClass, and its lifetime is tied to myWorkerClass.  How can you set it up so that it would include a mock myDataClass when the include is hard-wired?</p>