Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

2.5 «Espresso. Автоматизация тестирования Android»

Notifications You must be signed in to change notification settings

levvolkov/espresso

Repository files navigation

Домашнее задание к занятию «2.5. Espresso»


Сделано:

Задание. Реализация теста на проверку главного экрана

  1. Склонирован и запущен тестовый проект в Android Studio.

  2. Добавлены необходимые зависимости в файл /app/build.gradle в блок dependencies {:

 testImplementation 'junit:junit:4.13.2' 
 androidTestImplementation 'androidx.test.ext:junit:1.1.3' 
 androidTestImplementation 'androidx.test:rules:1.4.0'
 androidTestImplementation 'androidx.test:runner:1.4.0' 
 androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' 
  1. При возникновении проблем с запуском приложения был разрешен конфликт в структуре проекта (Project Structure) путем обновления следующих версий. Обновления были необходимы для обеспечения совместимости и стабильной работы приложения:
 Android Gradle Plugin Version 7.4.2
 Gradle Version 7.5
  1. Создан новый класс в директории /app/src/androidTest/java/ru/kkuzmichev/simpleappforespresso/.

  2. Добавлено аннотирование @RunWith над именем класса для указания на использование AndroidJUnit в тестах.

 @RunWith(AndroidJUnit4.class)
 public class ...
  1. Задано правило MainActivity внутри класса. Вместо ActivityTestRule использован ActivityScenarioRule, чтобы облегчить управление состоянием активности и улучшить совместимость с новыми версиями Android. Это также позволяет более эффективно тестировать жизненный цикл активности.
 @Rule
 public ActivityScenarioRule<MainActivity> activityRule =
 new ActivityScenarioRule<>(MainActivity.class);
  1. Для написания теста было запущено приложение, после чего проведен анализ иерархии элементов с помощью Layout Inspector, в результате которого был обнаружен элемент с текстом This is home fragment и его ID.

  2. Написан тест, проверяющий, что у найденного ID текст This is home fragment.

  • Вынесен текст кода в отдельную переменную, что улучшит читаемость кода и облегчит его поддержку. Если нужно будет изменить текст в будущем, это можно сделать это в одном месте, а не искать его по всему коду.
 private static final String homeFragmentText = "This is home fragment";

Использование private static final String обеспечит неизменяемость значения, что повысит безопасность кода и уменьшит вероятность ошибок, связанных с изменением текста в разных местах.

  1. Во время попытки запуска теста через консоль в режиме сборщика Gradle была успешно решена проблема с правами доступа к файлу gradlew путем выполнения команды:
 chmod +x ./gradlew
  1. Запущен тест в режиме сборщика Gradle, проверено его успешное завершение.
 ./gradlew connectedAndroidTest
  1. Запущен тест, нажав кнопку запуска возле метода теста, произведен экспорт отчета теста в HTML-файл, отчёт добавлен в issues репозитория.

  2. Для покрытия большинства потребностей добавлен Allure Report

  • Установлен Allure на ПК для требований системы отчетов.
 brew install allure
 allure --version
  • Добавлена необходимая Allure зависимость в файл /app/build.gradle в блок dependencies {:
 androidTestImplementation 'io.qameta.allure:allure-kotlin-android:2.4.0'
  • В тесте в аннотирование @RunWith(AndroidJUnit4.class) над именем класса добавленно Allure и сделан импорт:
 @RunWith(AllureAndroidJUnit4.class)
  • Запущен тест ▶️ проверено его успешное завершение.
  • В Android Studio в разделе Device Explorer по пути data/data/имя_проекта/files найдена и выгружена в проект папка allure-results с генерируемым отчетом.
  • Для запуска отчета в консоли выполнена команда:
 allure serve
  • Скриншот отчёта добавлен в issues репозитория.

About

2.5 «Espresso. Автоматизация тестирования Android»

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /