Тестирование XUnit — InMemory против реальной базы данныхC#

Место общения программистов C#
Anonymous
Тестирование XUnit — InMemory против реальной базы данных

Сообщение Anonymous »

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

Подробнее здесь: https://stackoverflow.com/questions/720 ... l-database

Вернуться в «C#»