public void DeleteSomeRows_ValidParameter_DeleteCallTriggered() { // arrange var cut = new DataBaseLayer(); var myparameterList = new List <object>(); var dbCommandMock = CreateCommandMock(myparameterList); var paramValue = "myTestString"; // act: here the dependency injection happens (its called "method injection") cut.DeleteSomeRows_Refactored(dbCommandMock.Object, paramValue); // assert that parameters were assigned correctly var myExpectedParamName = GetParamNameFromQuery(dbCommandMock.Object.CommandText); var myExpectedParamValue = paramValue; var myActualParamName = ((IDbDataParameter)myparameterList[0]).ParameterName; var myActualParamValue = ((IDbDataParameter)myparameterList[0]).Value; Assert.AreEqual(myExpectedParamName, myActualParamName); Assert.AreEqual(myExpectedParamValue, myActualParamValue); // assert that query was executed dbCommandMock.Verify(foo => foo.ExecuteNonQuery(), Times.Exactly(1)); }