title: mocking in unit tests with dependency injection
body: <p>I am wondering about the best way to make my system testable.</p>
  
  <p>I am unsure of the best practice with DI and mocking. </p>
  
  <p>If DI is facilitated by using interfaces should i build mock classes which implement the same interface as the real classes?</p>
  
  <p>And then use these mock classes in my tests via DI?</p>
  
  <p>I importing data into HDInsight. The data is taken from azure queues.</p>
  
  <p>I want to mock/emulate both the queue and the hdinsight so my unit tests are fast and decoupled.</p>
  
  <p>Should i use dependency injection in my tests or is moq sufficient,  are these supposed to operate independently?</p>