A unit test should be easy to run without having to modify it each time it is to run. In essence, a test should be ready to run repeatedly without modification. In the following test, the Test_DeleteLoan_ShouldReturnNull test method is not repeatable, because the test has to be modified each time it is run. To avoid this scenario, it is preferable to mock the loanRepository object:
[Fact] public void Test_DeleteLoan_ShouldReturnNull() { loanRepository.DeleteLoan(12); var loan=loanRepository.GetLoanById(12); Assert.Null(loan); }