Понял. Убираю строки про зелёные тесты.
Практика 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.