Я изо всех сил пытаюсь выбрать лучший подход к использованию моей базы данных в модульных тестах. Я использую XUnit для тестов, и моя модель базы данных сначала представляет собой код с инфраструктурой сущностей.
У меня есть варианты: InMemory и Real Database, оба поддерживаются контекстом платформы сущностей.
Однако у обоих есть проблемы:
InMemory — хорошо, потому что он может разворачивать экземпляры базы данных и быстро уничтожать их в памяти. Плохо, потому что он не находит встроенные ошибки SQL и не может тестировать функции, выполняющие необработанные команды SQL.
Настоящий - Хорошо, потому что он может находить собственные ошибки SQL и тестировать функции, выполняющие необработанные команды SQL. Плохо, потому что DbContext не является потокобезопасным, а XUnit запускает тесты асинхронно, что означает, что мне нужно будет создавать новую реальную базу данных для каждого теста (своевременно и беспорядочно).
Какое решение здесь является предпочтительным? Кажется, у обоих есть плюсы и минусы. Есть ли лучшее решение, которое мне не хватает?
Подробнее здесь: https://stackoverflow.com/questions/720 ... l-database