Тестирование 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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