TGViewer
Android разработка Android разработка @android_its · 4.88K subscribers
Post #235 2.12K
📱 Автоматизация скриншот-тестирования предварительных просмотров Compose с использованием отражения

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

Showkase

Одним из способов автоматизации скриншот-тестирования является использование Showkase  — библиотеки от Airbnb, предназначенной для генерации веб-компонентов, а также позволяющей с помощью Paparazzi автоматически тестировать все методы, аннотированные @Preview. Вот только для этого придется добавить Showkase в качестве зависимости для каждого модуля, в котором есть предварительные просмотры, требующие тестирования, что увеличит время сборки всех модулей, так как Showkase опирается на генерацию кода. Поэтому использование Showkase только для скриншот-тестов может оказаться не лучшим решением, поскольку это не основная функция библиотеки.

Отражение

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

Для тестов мы будем использовать библиотеку Paparazzi, разработанную Cashapp. Главное ее преимущество — отсутствие необходимости в эмуляторе для выполнения тестов, что делает их более быстрыми и надежными.

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

Пример проекта

📌 Читать дальше

@android_its
  • 👍 6
  • ❤ 2
  • 🔥 2
More from @android_its
  1. Sep 24, 2026Kotlin 2.5.0-Beta1 вышел JetBrains выпустила первую бета-версию Kotlin 2.5.0. Главное: - L…
  2. Sep 23, 2026📱 Qwen представила Qwen Intelligence - набор ИИ-агентов для смартфонов. В основе три аген…
  3. Sep 16, 2026🚀 JetBrains обновила roadmap Kotlin: главный фокус - Multiplatform, Wasm и удобство разра…
  4. Aug 23, 2026✔️ Как работают SAM-conversions Single Abstract Method (SAM) интерфейсы — это интерфейсы т…
  5. Aug 23, 2026🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажет…
  6. Aug 19, 2026✔️ Апдейт ChatGPT: изолированный контекст в Projects, тесты для проверки знаний и правки д…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →