8. Android-разработка. Тестирование. | Технострим
8. Android-разработка. Тестирование. | Технострим
https://www.youtube.com/watch?v=oQpmPCZbAt0
• Юнит-тесты - это тесты, которые пишутся на маленькие куски программы, функции или классы, и помогают быстро находить ошибки и улучшать качество архитектуры кода.
• Пирамида тестирования: юнит-тесты (70%), миграционные тесты (20%), интеграционные тесты (10%).
• Создание теста с помощью инструмента "Go to Test" в Android Studio.
• Настройка теста с помощью аннотаций и методов.
• Использование аннотаций для настройки порядка выполнения тестов и методов.
14:53 Использование правил юнит-тестов
• Создание временной папки, отслеживание выполнения тестового метода, добавление тайм-аута на тест.
• Гибкость использования правил юнит-тестов для разных ситуаций.
16:26 Использование аннотаций в тестах
• В видео рассказывается о дополнительных параметрах для аннотаций тестов, которые позволяют отлавливать исключения и игнорировать тесты.
• Упоминается, что тесты могут быть запущены с помощью иконок или конфигурации, а также с помощью Gradle.
• В видео обсуждаются макеты и заглушки, которые позволяют создавать фиктивные реализации для интерфейсов и классов.
• Упоминаются аннотации моков, которые позволяют создавать заглушки и проверять, вызывались ли методы.
• В видео объясняется, как использовать инжект моков для встраивания мокируемых объектов, которые требуют других объектов.
• Упоминается, что макита умеет макировать только публичные методы, а для статических и приватных методов используется другая библиотека - 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:13:00 Запуск активити и использование ресурсов
• Для запуска активити используется специальный рул, который позволяет настроить параметры для интента.
• Для настройки дополнительных параметров можно использовать методы бифо и автор активити.
• Для поиска элементов в активити можно использовать локатор лоя спектр.
• Эспрессо предоставляет дополнительные экшены для ресайклер вью, дата-пикера и других элементов, что упрощает написание тестов.
• Обсуждение работы с эспрессо, его костылей и дополнительных возможностей.
• Запуск тестов с использованием эспрессо и проверка их работы.
01:32:19 Запуск тестов с использованием оркестратора
• Обсуждение оркестратора, его функций и преимуществ перед обычным запуском тестов.
• Запуск тестов с использованием оркестратора и демонстрация его работы.
• Обсуждение проблем, связанных с крашами приложений и потерей тестов при их запуске.
• Решение этих проблем с помощью оркестратора.
01:36:58 Использование оркестратора для тестирования
• В видео рассказывается о том, как использовать оркестратор для тестирования приложений.
• Оркестратор позволяет запускать тесты по одному, а не все сразу, что ускоряет процесс тестирования.
• Также он автоматически очищает данные при каждом запуске приложения, что упрощает работу с тестами.
01:40:02 Процесс разработки фичи
• В видео объясняется процесс разработки фичи в компании.
• Сначала разработчик получает таску в системе управления задачами, затем создает ветку и начинает разработку.
• После завершения разработки, разработчик создает промежуточную ветку и запускает тесты на гибридном бранче.
• Если тесты проходят успешно, разработчик может вмерзить свою ветку в девелоп.
• После среды, когда любые комиты и пол-реквесты больше не принимаются, девелоп-ветка отводится и из нее делается релиз.
• В пятницу тестировщики вручную проверяют то, что не покрыто автотестами, и в понедельник релиз выкладывается в плей-сторе.
• В случае обнаружения ошибок, в релиз вносятся исправления.