Android Broadcast
14.2K subscribers
3.49K photos
334 videos
11 files
5.86K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#Test #Coroutines

Android Testing Codelab теперь содержит информацию про корутины

Теперь в официальной codelab по тестированию на Android можно найти следующую информацию:
👉 Как создать настроить тест корутин
👉 Когда использовать runBlockingTest
👉 Как тестировать Architecture Components
👉 Как использовать TestCoroutineDispatcher для приостановки выполнения корутин
#Java #Test

Truth 1.0: Fluent Assertions for Java and Android Tests

Google выпустила assertation библиотеку для тестов. В чем ее преимущества по сравнению с уже существующими решениями AssertJ и Hamcrest:
👉 Более простое API: вызовы идут цепочкой и IDE может легко вам предлагать подходящие assertation
👉 Сообщения об ошибки более читабельны

Truth поддерживает Java, Kotlin, Android, AndroidX Test, GWT.
#Test

What is a unit?

Что нам говорят про тесты, когда мы впервые слышим о них?
👉Есть Unit и интеграционные
👉Первых должно быть больше, так как интеграционные медленные
👉Unit тесты должны тестировать только отдельные части кода: метод или класс

Danny Preussler разбирается во всех частях и на примерах показывает что стоит покрывать Unit тестами
#Coroutines #Test

How to unit test code with Coroutines

Вы хороший программист, который покрывает свой код Unit тестами, а еще и в тренде потому что используешь Coroutine и Kotlin ? Тогда рекомендую ознакомиться как сочетать 2 эти подхода и что такого предоставляется библиотека org.jetbrains.kotlinx:kotlinx-coroutines-test
#Test #Automation

Kaspresso: фреймворк для автотестирования, который вы ждали

Союз ребят из Лаборатории Касперского, HeadHunter и Авито создали фреймворк для автотестирование, который сделает ваши отношения с автотестами лучше и плодотворнее.

Чем же отличился Kaspresso:
👉 Возможность использования adb, а значит можно настраивать систему для теста
👉 Создание скриншотов
👉 Красивый DSL
👉 Решения flaky тестов из коробки
👉 Легкая интеграция если у вы используете Kakao
👉 Гибкость и легкая настраиваемость

В статье рассказывается зачем был нужен еще один инструмент для написания автотестов, чем не угодил Espresso, Kakao, нужен ли DSL для написания тестов и пр.
#Coverage #Test #JaCoCo

Вышел JaCoCo 0.8.5

Вышла новая версия самой популярной библиотеки для Java Code Coverage. Новая версия получила следующие улучшения:
👉 Поддержка Java 13 (Android разработчики только этого и ждали 😁)
👉 Улучшение отчетов для Kotlin
‼️ Изменилась лицензия на Eclipse Public License Version 2.0
👉 Исправление багов
#Coroutines #LiveData #Test

Testing two consecutive LiveData emissions in Coroutines

Kotlin Coroutines получают все большую популярность и активнее интегрируются в последние решения от Google, поэтому стоит рассматривать подходы, которые рекомендуется использовать.

В статье рассматривается проблема тестирования эмита 2 последовательных значений LiveData, одно из которых приходит из Coroutine.

Автор рассказывает о нескольких решениях:
1️⃣ TestCoroutineDispatcher из библиотеки kotlinx.coroutines.test, который позволяет приостанавливать и возобновлять CoroutineDispatcher
2️⃣ Использование LiveData.asFlow(). Пример можно найти в Pull Request

Хорошие практики использования Dispatcher-ов в тестах:
👉 Не используйте стандартный класс Dispatchers, а доставляйте зависимости сами с помощью DI. Это позволит вам подменять их в тестах и иметь больший контроль
👉Используйте TestCoroutineDispatcher вместо Dispatchers.Unconfined для тестов. TestCoroutineDispatcher дает больше гибкости для тестирования, чем Dispatchers.Unconfined, но последний все также может успешно выполнять Coroutine синхронно.
#Gradle #Flake #Test

Introducing flaky test mitigation tools for Gradle

Разработчики из Gradle представили новый плагин Test Retry Gradle Plugin, который повторяет выполнение неудачно выполнившихся тестов заданное количество раз. Flaky тесты отображаются специальным образом в тестовом отчете и Build Scan

Поддерживается следующие тестовые фреймворки:
👉 JUnit4
👉 JUnit Platform (JUnit 5)
👉 Spock
👉 TestNG
#JUnit #Test

Вышла новая версия JUnit 5.6.0

Основные изменения:
👉 Новый @Enabled/@DisabledForJreRange условия для выполнения теста
👉 Новое API TestInstancePreDestroyCallback для расширений
👉 Улучшение отчетов для крэшей во время поиска/выполнения тестов
👉 Модуляризация Javadoc

Множество других улучшений который вы можете найти в полном описание изменений
#Test

Автотесты на Android. Картина целиком

Как выстроить автотесты в вашем проекте? Это тяжело? В команде Avokado так не считают и в статье отвечают на ряд вопросов:
👉 Зачем нужны автотесты?
👉 Процесс написания тестов
👉 Инструменты
👉 Где запускать тесты?
👉 Инфраструктура
#test

Вышел Robolectric 4.7
👉 поддержка Apple Silicon (M1)
👉 собственная реализация БД (работает только на Mac и Linux)
👉 депрекейшен support-v4 (будет удалён в 4.8)
👉 Куча багфиксов
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
#test #coroutines

Migrating to the new coroutines 1.6 test APIs (5 мин)

В KotlinX Coroutines 1.6 значительно обновили API для тестирования корутин, если вы еще не успели мигрировать на новую версию библиотеки и у вас есть тесты, то статья расскажет вам про изменения:
👉 runTest вместо runBlockingTest
👉 Замену главного потока на новый TestDispatcher
👉 UnconfinedTestDispatcher для тестирования Flow
👉 Разница между UnconfinedTestDispatcher и StandardTestDispatcher
👉 Сброс кода после тестов

Пример обновления тестов можно найти здесь, здесь и здесь. Также есть официальное руководство по миграции от JetBrains
👍15👎10
Обновление тестовых библиотек в Android Jetpack от 8 ноября 2022
👉 Поддержка Kotlin 1.7
👉 Test Runner 1.5.0 - запись трейса для событий жизненного цикла теста, улучшение API и исправление багов
👉 Monitor aka Platform 1.6.0 - поддержка ActivityScenario#launchActivityForResult и различных библиотека для трейсинга
👉 Test Core 1.5.0 - экспериментальное API для скриншотов и Bitmap.writeToTestStorage API

Espresso 3.5.0 получил множество новинок
👉 DefaultFailureHandler теперь сохраняет скриншоты при падение теста
👉 Экспериментальная функция ViewInteraction.captureToBitmap
👉 Сохранение иерархии View при падение теста
👉 Стабилизация части API
👉 Исправление множества багов

#jetpack #jetpackupdate #test
👍9😁2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Нашел тулзу Maestro - простой инструмент для тестирования UI мобильных приложений (Android, iOS, Flutter, ReactNative), где вы описываете сценарий в YML файлу. Также предоставляет и облачную версию сервиса

#test #tooling
🤔38👍20🔥10😁2🤯2👎1
Как можно хранить стабы для MockWebServer в Android-тестах

Команда Delivery Club Tech делится опытом подмены ответов сервера для проведения UI тестов без необходимости общаться с сервером и проверки разных сценариев в зависимости от ответа с backend. Стек: OkHttp3 + Retrofit + JUnit

#test
👍28👎112😁2
Why go with Paparazzi? Our journey with Android Screenshot Testing (5 мин)

Разбор что такое скриншот тестирование, зачем оно делается и библиотеки Paparazzi для скриншот тестирования без устройства. Плюсы - скорость работы, и нет проблем с эмуляторами/устройствами.

#test
👎13👍3
Статья про тестирование флакающих тестов для собственного layout в Compose. Разбирается пример с проблема измерений размеров в px и dp

#compose #test
👍11👎42
Обязательная поддержка страницы размером 16K в Android 15 позволит получить много преимуществ для устройств по замерам Google:
👉 Скорость запуска приложений становится выше при малом количестве свободной памяти
👉 Быстрее скорость запуска системы
👉 Приложение камеры запускается быстрее

Изменение заденет тех кто использует NDK при разработке и все еще работает со страницами размером 4K. Чтобы проверить работоспособность вашего приложения можно по инструкции тут, а узнать больше про изменения в документации

#android15 #ndk
👍3
🔨 Появилось тестирование бэкапа данных в Android Studio

В Android Studio Narwal 2025.1.1 добавили возможность тестирования бэкапа данных приложения и его восстановления

#android #androidstuido
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34
‼️ Все Android приложения должны обеспечить поддержку работы на устройствах с размером страницы памяти 16KB

Изменение размера страницы в памяти от 4 KB в 16 KB даст для приложений:
🚀 Ускорения запуска приложений
🔋 Сокращение расхода батареи
📷 Ускорение включения камеры
📱 Ускорение запуска системы

Новая требование Google Play обязует реализовать поддержку работы всех новых приложений и обновлений с targetSdk 35 (Android 15). Изменение вступает в силу с 1 ноября 2025 года

Что нужно делать
👉 Обновить библиотеки с нативынм кодом до версий с поддержку нового размера страницы
👉 Перекомпилировать свой нативный код на C/C++ с последней версией инструментов

В Google Play в AppBundle Explorer вы будете видеть совместимо ли ваше приложение cо страницей размера 16KB.

Полезные ссылки
🔗 Как адаптировать приложение
🔗 Как провести тестирование приложения на таком устройстве
🔗 Подробная документация по 16Kb page size

#android #googleplay #ndk
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27