title: While doing TDD, when to implement a new mocked dependency?
body: <p>There's one question I can't find an answer to, concerning TDD with the outside-in approach:</p>
  
  <p>I implement a new unit (A), write a test for it and this unit needs a dependency (B) that does not exist yet. In my test it's easy to mock this dependency, but what do I do in my production code?</p>
  
  <p>Do I implement (B) first and let my tests for (A) fail meanwhile because I haven't gone on implementing it to make its tests pass yet?</p>
  
  <p>Or do I complete (A) first and meanwhile let tests for (B) fail because it e.g. just returns "empty" objects instead of actually doing what its specification tells it to do?</p>
  
  <p>Or should I let (B)'s tests temporarily check that it returns "empty" objects while I keep implementing (A) - although that's actually not what (B)'s specification is?</p>