Где возникают трудности при создании теста, который:
- Создает новую БД
- Применяет все текущие миграции для создания схемы
- Пытается использовать всеюридические лица. Это может быть так же просто, как добавить сущность, запросить эту сущность и глубоко сравнить их.
- Удаляет базу данных
Если схема не имеет миграции дляновая сущность или изменение сущности, вы обязательно получите и ошибку SQL из этого.
Конечно, каждый раз, когда вы создаете новую сущность, вам нужно будет добавить новый тест. Но это должно произойти, если вы используете TDD.
И скорость также не должна быть проблемой, так как создание и удаление БД не должно занимать более нескольких секунд, и не будет многотакого рода тесты. И они могут быть распараллелены.
Если вы хотите проявить фантазию и не хотите писать тест для каждой сущности, можно сделать что-то вроде этого:
- Использоватьотражение для получения всех типов сущностей, поддерживаемых контекстом.
- Используйте автоматический генератор данных, например Bogus или AutoFixture , чтобы заполнить сущности данными.
- Обход объектов по БД.
- Сравнение оригинала с полученным с использованием Deep-Comparer, например Compare-Net-Objects .
Полезность такого автоматизированногоподход будет зависеть от сложности вашей модели данных. Будет просто работать для простой модели. Но потребуется много настроек и переопределений, если модель сложная.