title: In Memory database vs Moqing framework in .NET Core
body: <p>we are going to implement TDD approach in our next project. So I have been studying Unit Testing with NUnit in ASP.NET Core. As I am new I am confused about few things. So I would like to share these questions with you for making decisions based on the expert opinions. </p>
  
  <ol>
  <li>What are the Pros and Cons of Mocking database and In-Memory database? </li>
  <li>In which situation, we should use Mocking and in what situation we should go with InMemory database provider?</li>
  <li>Which is the better approach, using InMemory or using Mocking?</li>
  <li>Can we implement both approaches together in the same project?</li>
  <li>For integration testing, should we use mocking or In Memory?</li>
  <li>Is it a better approach to use the In-Memory database in Unit Testing?</li>
  <li>While testing Business Layer, should we use Mocking or In-Memory database?</li>
  <li>While testing MVC Controller, should we use Mocking or In-Memory database?</li>
  </ol>
  
  <p>Please help me to find the answers to these questions. It might be that, some questions are similar, however, I don't want to remove them for having a better understanding from you guys. Thanks.</p>