Android UI automation with Espresso, Java 11 and JUnit 4.
Пять инструментальных сценариев для учебного Android-приложения. Проект демонстрирует работу с Activity и Fragment, пользовательским вводом, поворотом экрана, Toast и меню Toolbar.
| Класс | Проверка |
|---|---|
| ExampleInstrumentedTest | Ввод текста, нажатие UNEDITED, проверка изменённой надписи, поворот и явное восстановление ориентации |
| IntentTest | Переход из MainActivity в SecondActivity, проверка Intent и отображаемого текста |
| TransitionTest | Навигация между экранами, включая системную кнопку «Назад» |
| ToastTest | Нажатие кнопки письма и проверка текста в Toast-окне |
| ToolbarTest | Открытие Settings в меню и закрытие по нажатию вне меню |
Исходные сценарии: app/src/androidTest/java/com/example/espressoappformentoring.
- Тесты: Java 11, JUnit 4, AndroidJUnit4.
- Espresso Core/Intents 3.5.1, AndroidX Test.
- ActivityScenarioRule, ActivityTestRule, пользовательский ToastMatcher.
- OrientationIdlingResource ожидает нужную конфигурацию экрана.
- Приложение: Kotlin 1.8.21, AndroidX Navigation, ViewBinding.
- Gradle 7.5, Android Gradle Plugin 7.4.2, compileSdk/targetSdk 33, minSdk 24.
Тестовые вспомогательные классы находятся рядом со сценариями в androidTest и не входят в APK приложения.
- Установите JDK 11 и Android Studio.
- В настройках Gradle JDK выберите JDK 11.
- Установите Android SDK Platform 33 и создайте телефонный эмулятор Android 13 / API 33.
- Запустите эмулятор. Команда adb devices должна показывать устройство со статусом device.
- Настройте ANDROID_HOME или создайте локальный local.properties с sdk.dir. Файл local.properties не публикуется.
git clone https://github.com/rootofevi1/android-espresso-ui-tests.git
cd android-espresso-ui-tests
./gradlew :app:assembleDebug :app:assembleDebugAndroidTest
./gradlew :app:connectedDebugAndroidTestWindows: используйте .\gradlew.bat.
Один сценарий:
.\gradlew.bat "-Pandroid.testInstrumentationRunnerArguments.class=com.example.espressoappformentoring.ToastTest" :app:connectedDebugAndroidTestHTML-отчёт: app/build/reports/androidTests/connected/index.html.
- UTP отключён свойством android.experimental.androidTest.useUnifiedTestPlatform=false: в локальном окружении AGP 7.4.2 возникала ошибка запуска gRPC-слушателя результатов.
- После connectedDebugAndroidTest запускается installDebug. Это возвращает приложение после очистки тестового запуска, но не гарантирует сохранение ярлыка на домашнем экране.
- Используется кастомный Toast с контрастным фоном. ToastMatcher проверяет окно TYPE_TOAST; поведение на других версиях Android требует отдельной проверки.
- CI собирает APK приложения и тестов. Эмуляторные тесты запускаются локально; успешная сборка APK не означает их прохождения.
Тесты и доработки выполнены на основе учебного Android-приложения. Исходный каркас приложения на Kotlin не выдаётся за разработанный с нуля. В репозиторий не включены задания, материалы курса и история учебного репозитория.