Лучший ответ - использовать фальшивые рамки, как уже упоминали другие. Грязный способ, но иногда более быстрый, если вы не хотите изучать фальшивые фреймворки (что вам действительно нужно), - это создать тестовый класс и переопределить виртуальные методы. В вашем случае что-то вроде
public class RepoUnderTest : Repo
{
public bool UpdateRegistrationDetailsCalled = false;
public override void UpdateRegistrationDetails(Car car)
{
base.UpdateRegistrationDetails(car);
UpdateRegistrationDetailsCalled = true;
}
}
тогда вы можете проверить что-то похожее на
[HttpPost]
public ActionResult Create(Car car)
{
// Arrange
var _repository = new RepoUnderTest();
// Act
_repository.CreateCar(car);
// Assert
Assert.IsTrue(_repository.UpdateRegistrationDetailsCalled);
}
Опять же, насмешливые рамки лучше. И я бы проголосовал за них, но иногда это простое введение в тестирование этих вещей, прежде чем вы начнете увлекаться насмешками.