Загрузка данных


Понял. Убираю строки про зелёные тесты.

Практика 13. Тестирование Android-приложений

Цель и задачи

Освоить основы тестирования Android-приложений: научиться писать unit-тесты для ViewModel и логики с использованием JUnit, MockK и Truth, применять runTest и StandardTestDispatcher для тестирования корутин, использовать Dispatchers.setMain для подмены главного диспетчера, а также понимать разницу между unit-тестами (JVM) и инструментальными тестами (на устройстве).

Что сделано

Добавление тестовых зависимостей mockk, truth, turbine, junit в build.gradle.kts продемонстрировано на рисунке 96.

Создание NoteDaoTest.kt с 40 тестами для слоя данных (Room DAO) показано на рисунке 97.

Создание NotesViewModelTest.kt с 40 unit-тестами для ViewModel продемонстрировано на рисунке 98.

Создание NoteCardTest.kt с 40 Compose UI-тестами для карточки заметки показано на рисунке 99.

Создание MiniJsonTest.kt с 40 unit-тестами для JSON-сериализатора представлено на рисунке 100.

Структура тестового класса NoteDaoTest с in-memory базой данных продемонстрирована на рисунке 101.

Структура тестового класса NotesViewModelTest с MainDispatcherRule показана на рисунке 102.

Вывод

Освоено unit-тестирование Android-приложения: JUnit4 для структуры тестов, MockK для создания моков, Truth для читаемых assertions, runTest + StandardTestDispatcher + advanceUntilIdle для тестирования корутин с виртуальным временем. Освоена подмена Dispatchers.Main через Dispatchers.setMain() — обязательный приём при тестировании ViewModel на JVM. Освоено тестирование Room DAO через in-memory базу данных — Room.inMemoryDatabaseBuilder() создаёт изолированную базу в RAM, которая уничтожается после теста. Освоены Compose UI-тесты через createAndroidComposeRule — поиск узлов через onNodeWithText, действия через performClick, проверки через assertIsDisplayed. Итого по проекту написано 160 тестов, по 40 на каждый слой: NoteDaoTest, NotesViewModelTest, NoteCardTest, MiniJsonTest.

---

Скажи «пришли код» — пришлю 4 файла на 160 тестов.

Или «дальше» — Практика 14.