May 17, 2024

8. Android-разработка. Тестирование. | Технострим  

8. Android-разработка. Тестирование. | Технострим

https://www.youtube.com/watch?v=oQpmPCZbAt0

00:04 Введение в юнит-тесты

• Юнит-тесты - это тесты, которые пишутся на маленькие куски программы, функции или классы, и помогают быстро находить ошибки и улучшать качество архитектуры кода.
• Пирамида тестирования: юнит-тесты (70%), миграционные тесты (20%), интеграционные тесты (10%).

06:26 Создание юнит-теста

• Создание теста с помощью инструмента "Go to Test" в Android Studio.
• Настройка теста с помощью аннотаций и методов.
• Использование аннотаций для настройки порядка выполнения тестов и методов.

14:53 Использование правил юнит-тестов

• Создание временной папки, отслеживание выполнения тестового метода, добавление тайм-аута на тест.
• Гибкость использования правил юнит-тестов для разных ситуаций.

16:26 Использование аннотаций в тестах

• В видео рассказывается о дополнительных параметрах для аннотаций тестов, которые позволяют отлавливать исключения и игнорировать тесты.
• Упоминается, что тесты могут быть запущены с помощью иконок или конфигурации, а также с помощью Gradle.

22:24 Моки и макеты

• В видео обсуждаются макеты и заглушки, которые позволяют создавать фиктивные реализации для интерфейсов и классов.
• Упоминаются аннотации моков, которые позволяют создавать заглушки и проверять, вызывались ли методы.

31:16 Инжект моков

• В видео объясняется, как использовать инжект моков для встраивания мокируемых объектов, которые требуют других объектов.
• Упоминается, что макита умеет макировать только публичные методы, а для статических и приватных методов используется другая библиотека - Power Mock.

37:06 Тестирование с использованием моков

• Создание моков для взаимодействия с системой и проверки работы приложения.
• Использование аннотации для создания моков и работы с шерид преференс.

43:07 Использование арбалектрика для тестирования

• Арбалектрик позволяет запускать тесты на устройстве, не запуская эмулятор.
• Использование шедоу-классов для работы с различными элементами системы.

52:34 Проблемы с использованием арбалектрика

• Проблемы с эмуляцией полного андроида и перемещением между активити.
• Не рекомендуется использовать арбалектрик для многопоточных приложений.
• Арбалектрик - это симулятор андроида, а не чистый андроид.

54:03 Тестирование Android-приложений

• Видео обсуждает различные подходы к тестированию Android-приложений, включая использование инструментов, таких как Apeum, Espresso и UIAutomator.
• Apeum - это веб-сервер, который позволяет отправлять запросы на тестирование на любом языке, включая Java, Ruby и Java.
• Espresso - это фреймворк, который предоставляет доступ к коду приложения и позволяет вызывать код приложения.
• Espresso работает вместе с UIAutomator, который позволяет взаимодействовать с компонентами системы, такими как шторка или другое приложение.
• Тесты UIAutomator лежат в папке Android-test и используют AndroidJUnitRunner для запуска тестов.

01:00:21 Использование эспрессо для тестирования

• В видео рассказывается о том, как использовать эспрессо для тестирования в Android.
• Эспрессо собирает специальную тестовую ПК, в которую запаковывает все тесты и запускает их на приложении.
• В примере показан тест, который кликает на сеттинге, заполняет поля и проверяет, что кнопка реверс возвращает все в исходное состояние.

01:06:21 Ожидания в эспрессо

• Эспрессо автоматически ожидает выполнения всех бэкграунд тасков и выполняет тесты только после их завершения.
• Если тест выполняется быстро, то можно добавить аси-таски для создания видимости задержки.

01:13:00 Запуск активити и использование ресурсов

• Для запуска активити используется специальный рул, который позволяет настроить параметры для интента.
• Для настройки дополнительных параметров можно использовать методы бифо и автор активити.
• Для поиска элементов в активити можно использовать локатор лоя спектр.
• Эспрессо предоставляет дополнительные экшены для ресайклер вью, дата-пикера и других элементов, что упрощает написание тестов.

01:20:37 Работа с эспрессо

• Обсуждение работы с эспрессо, его костылей и дополнительных возможностей.
• Запуск тестов с использованием эспрессо и проверка их работы.

01:32:19 Запуск тестов с использованием оркестратора

• Обсуждение оркестратора, его функций и преимуществ перед обычным запуском тестов.
• Запуск тестов с использованием оркестратора и демонстрация его работы.
• Обсуждение проблем, связанных с крашами приложений и потерей тестов при их запуске.
• Решение этих проблем с помощью оркестратора.

01:36:58 Использование оркестратора для тестирования

• В видео рассказывается о том, как использовать оркестратор для тестирования приложений.
• Оркестратор позволяет запускать тесты по одному, а не все сразу, что ускоряет процесс тестирования.
• Также он автоматически очищает данные при каждом запуске приложения, что упрощает работу с тестами.

01:40:02 Процесс разработки фичи

• В видео объясняется процесс разработки фичи в компании.
• Сначала разработчик получает таску в системе управления задачами, затем создает ветку и начинает разработку.
• После завершения разработки, разработчик создает промежуточную ветку и запускает тесты на гибридном бранче.
• Если тесты проходят успешно, разработчик может вмерзить свою ветку в девелоп.

01:46:30 Тестирование и релиз

• После среды, когда любые комиты и пол-реквесты больше не принимаются, девелоп-ветка отводится и из нее делается релиз.
• В пятницу тестировщики вручную проверяют то, что не покрыто автотестами, и в понедельник релиз выкладывается в плей-сторе.
• В случае обнаружения ошибок, в релиз вносятся исправления.