Я работаю над новым проектом, где я активно пытаюсь чтить упорство невежества.Например, на моем уровне обслуживания я извлекаю сущность из своего ORM и вызываю подпрограмму, определенную для сущности, которая может или не может вносить изменения в сущность.Затем я полагаюсь на мой ORM, чтобы определить, был ли объект изменен или нет, и он делает необходимые вставки / обновления / удаления.
Когда я запускаю приложение, оно работает, как задумано, и очень удобно видеть это в действии.,Моя бизнес-логика очень изолирована, и мой уровень обслуживания действительно тонкий.
Конечно, сейчас я добавляю модульные тесты и заметил, что больше не могу писать модульные тесты, которые проверяют, были ли определенные свойства или нет.модифицирована.В моем предыдущем решении я определяю, был ли сделан вызов репозитория с ожидаемым состоянием объекта.
mockRepository.Verify(mr =>
mr.SaveOrUpdate(It.Is<MyEntity>(x =>
x.Id == 123 && x.MyProp == "newvalue")), Times.Once());
Правильно ли я подхожу к постоянному невежеству?Есть ли лучший способ для модульного тестирования послеоперационного состояния моих объектов, когда я не вызываю явно метод сохранения хранилища?
Если это помогает, я использую ASP.NET MVC 3, WCF,NHibernate и NUnit / Moq.Мои модульные тесты обращаются к действиям моего контроллера, передавая экземпляры моих классов обслуживания (которые создаются с помощью проверенных репозиториев).