Выбор ответа Middle Тестирование обновлено
Тестирование Room DAO
Вопрос
Как правильно протестировать DAO Room?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: База Room.inMemoryDatabaseBuilder в тесте и проверка настоящих запросов. Ценность теста DAO в проверке SQL: фильтров, сортировки, связей, конфликтов.
Варианты ответа
- База
Room.inMemoryDatabaseBuilderв тесте и проверка настоящих запросовправильный ответ - Мокать DAO через MockK и проверять, что репозиторий вызывает нужные методы
- Проверять DAO через UI-тесты экранов, которые показывают эти данные
- Room тестировать не нужно: SQL проверяется при компиляции, остальное у Google
Разбор
Ценность теста DAO в проверке SQL: фильтров, сортировки, связей, конфликтов. Мок DAO этого не проверит. База в памяти создаётся быстро и исчезает после теста. Для миграций есть MigrationTestHelper, работающий с экспортированными схемами. Библиотеку Google проверяет, а ваши запросы нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.