Выбор ответа Middle Тестирование обновлено
EF Core InMemory в тестах
Вопрос
Почему провайдер EF Core InMemory не рекомендуют для тестов логики работы с базой?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Он не реляционный: нет транзакций и внешних ключей. InMemory не проверяет уникальность и внешние ключи как реляционная база, не поддерживает транзакции и сырой SQL, а сравнение строк в нём чувствительно к регистру иначе, чем в вашей СУБД.
Варианты ответа
- Он не реляционный: нет транзакций и внешних ключейправильный ответ
- Он слишком медленный для большого числа тестов
- Он удалён из EF Core 8 и больше не поддерживается
- Он не поддерживает LINQ-запросы с
WhereиJoin
Разбор
InMemory не проверяет уникальность и внешние ключи как реляционная база, не поддерживает транзакции и сырой SQL, а сравнение строк в нём чувствительно к регистру иначе, чем в вашей СУБД. Документация EF Core прямо советует тестировать на настоящей базе (Testcontainers, локальный экземпляр) или на SQLite in-memory как компромиссе. Провайдер быстрый, существует, LINQ поддерживает.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.