Выбор ответа Middle Тестирование обновлено

Тестирование Room DAO

Вопрос

Как правильно протестировать DAO Room?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: База Room.inMemoryDatabaseBuilder в тесте и проверка настоящих запросов. Ценность теста DAO в проверке SQL: фильтров, сортировки, связей, конфликтов.

Варианты ответа

  1. База Room.inMemoryDatabaseBuilder в тесте и проверка настоящих запросовправильный ответ
  2. Мокать DAO через MockK и проверять, что репозиторий вызывает нужные методы
  3. Проверять DAO через UI-тесты экранов, которые показывают эти данные
  4. Room тестировать не нужно: SQL проверяется при компиляции, остальное у Google

Разбор

Ценность теста DAO в проверке SQL: фильтров, сортировки, связей, конфликтов. Мок DAO этого не проверит. База в памяти создаётся быстро и исчезает после теста. Для миграций есть MigrationTestHelper, работающий с экспортированными схемами. Библиотеку Google проверяет, а ваши запросы нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.