#Test #Coroutines
Android Testing Codelab теперь содержит информацию про корутины
Теперь в официальной codelab по тестированию на Android можно найти следующую информацию:
👉 Как создать настроить тест корутин
👉 Когда использовать runBlockingTest
👉 Как тестировать Architecture Components
👉 Как использовать TestCoroutineDispatcher для приостановки выполнения корутин
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.
Truth 1.0: Fluent Assertions for Java and Android Tests
Google выпустила assertation библиотеку для тестов. В чем ее преимущества по сравнению с уже существующими решениями AssertJ и Hamcrest:
👉 Более простое API: вызовы идут цепочкой и IDE может легко вам предлагать подходящие assertation
👉 Сообщения об ошибки более читабельны
Truth поддерживает Java, Kotlin, Android, AndroidX Test, GWT.
Google Open Source Blog
Truth 1.0: Fluent Assertions for Java and Android Tests
#Test
What is a unit?
Что нам говорят про тесты, когда мы впервые слышим о них?
👉Есть Unit и интеграционные
👉Первых должно быть больше, так как интеграционные медленные
👉Unit тесты должны тестировать только отдельные части кода: метод или класс
Danny Preussler разбирается во всех частях и на примерах показывает что стоит покрывать Unit тестами
What is a unit?
Что нам говорят про тесты, когда мы впервые слышим о них?
👉Есть Unit и интеграционные
👉Первых должно быть больше, так как интеграционные медленные
👉Unit тесты должны тестировать только отдельные части кода: метод или класс
Danny Preussler разбирается во всех частях и на примерах показывает что стоит покрывать Unit тестами
Medium
What is a unit?
What you know about the size of a unit test might be all wrong!
#Coroutines #Test
How to unit test code with Coroutines
Вы хороший программист, который покрывает свой код Unit тестами, а еще и в тренде потому что используешь
How to unit test code with Coroutines
Вы хороший программист, который покрывает свой код Unit тестами, а еще и в тренде потому что используешь
Coroutine
и Kotlin
? Тогда рекомендую ознакомиться как сочетать 2 эти подхода и что такого предоставляется библиотека org.jetbrains.kotlinx:kotlinx-coroutines-test
Medium
How to unit test code with Coroutines
In this article, I would like to focus on the topic of how to test code with coroutines. Let’s start with some example of ViewModel.
#Test #Automation
Kaspresso: фреймворк для автотестирования, который вы ждали
Союз ребят из Лаборатории Касперского, HeadHunter и Авито создали фреймворк для автотестирование, который сделает ваши отношения с автотестами лучше и плодотворнее.
Чем же отличился
👉 Возможность использования
👉 Создание скриншотов
👉 Красивый DSL
👉 Решения flaky тестов из коробки
👉 Легкая интеграция если у вы используете Kakao
👉 Гибкость и легкая настраиваемость
В статье рассказывается зачем был нужен еще один инструмент для написания автотестов, чем не угодил Espresso, Kakao, нужен ли DSL для написания тестов и пр.
Kaspresso: фреймворк для автотестирования, который вы ждали
Союз ребят из Лаборатории Касперского, HeadHunter и Авито создали фреймворк для автотестирование, который сделает ваши отношения с автотестами лучше и плодотворнее.
Чем же отличился
Kaspresso
:👉 Возможность использования
adb
, а значит можно настраивать систему для теста👉 Создание скриншотов
👉 Красивый DSL
👉 Решения flaky тестов из коробки
👉 Легкая интеграция если у вы используете Kakao
👉 Гибкость и легкая настраиваемость
В статье рассказывается зачем был нужен еще один инструмент для написания автотестов, чем не угодил Espresso, Kakao, нужен ли DSL для написания тестов и пр.
Хабр
Kaspresso: фреймворк для автотестирования, который вы ждали
Все, кто занимался или занимается автотестами под Android, знают, какая это боль. От объема задач и проблем устаешь так, что и отпуск не помогает. Люди даже увол...
#Coverage #Test #JaCoCo
Вышел JaCoCo 0.8.5
Вышла новая версия самой популярной библиотеки для Java Code Coverage. Новая версия получила следующие улучшения:
👉 Поддержка Java 13 (Android разработчики только этого и ждали 😁)
👉 Улучшение отчетов для Kotlin
‼️ Изменилась лицензия на Eclipse Public License Version 2.0
👉 Исправление багов
Вышел 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
В статье рассматривается проблема тестирования эмита 2 последовательных значений
Автор рассказывает о нескольких решениях:
1️⃣ TestCoroutineDispatcher из библиотеки
2️⃣ Использование
Хорошие практики использования
👉 Не используйте стандартный класс Dispatchers, а доставляйте зависимости сами с помощью DI. Это позволит вам подменять их в тестах и иметь больший контроль
👉Используйте TestCoroutineDispatcher вместо Dispatchers.Unconfined для тестов.
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 синхронно.Medium
Testing two consecutive LiveData emissions in Coroutines
This article is about how we unit tested two consecutive LiveData emissions by pausing and resuming the CoroutineDispatcher of a 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
Introducing flaky test mitigation tools for Gradle
Разработчики из Gradle представили новый плагин Test Retry Gradle Plugin, который повторяет выполнение неудачно выполнившихся тестов заданное количество раз. Flaky тесты отображаются специальным образом в тестовом отчете и Build Scan
Поддерживается следующие тестовые фреймворки:
👉 JUnit4
👉 JUnit Platform (JUnit 5)
👉 Spock
👉 TestNG
blog.gradle.org
Introducing flaky test mitigation tools
This post introduces a new Gradle plugin and build scans improvements aimed at mitigating your flaky tests.
#JUnit #Test
Вышла новая версия JUnit 5.6.0
Основные изменения:
👉 Новый
👉 Новое API
👉 Улучшение отчетов для крэшей во время поиска/выполнения тестов
👉 Модуляризация Javadoc
Множество других улучшений который вы можете найти в полном описание изменений
Вышла новая версия JUnit 5.6.0
Основные изменения:
👉 Новый
@Enabled
/@DisabledForJreRange
условия для выполнения теста👉 Новое API
TestInstancePreDestroyCallback
для расширений👉 Улучшение отчетов для крэшей во время поиска/выполнения тестов
👉 Модуляризация Javadoc
Множество других улучшений который вы можете найти в полном описание изменений
#Test
Автотесты на Android. Картина целиком
Как выстроить автотесты в вашем проекте? Это тяжело? В команде Avokado так не считают и в статье отвечают на ряд вопросов:
👉 Зачем нужны автотесты?
👉 Процесс написания тестов
👉 Инструменты
👉 Где запускать тесты?
👉 Инфраструктура
Автотесты на Android. Картина целиком
Как выстроить автотесты в вашем проекте? Это тяжело? В команде Avokado так не считают и в статье отвечают на ряд вопросов:
👉 Зачем нужны автотесты?
👉 Процесс написания тестов
👉 Инструменты
👉 Где запускать тесты?
👉 Инфраструктура
Хабр
Автотесты на Android. Картина целиком
Всем привет! Автотесты под Android — это непросто. Чтобы выстроить процесс автотестирования, надо запланировать и решить множество задач. Но самая большая беда заключается в том, что нигде нет полного...
#test
Вышел Robolectric 4.7
👉 поддержка Apple Silicon (M1)
👉 собственная реализация БД (работает только на Mac и Linux)
👉 депрекейшен support-v4 (будет удалён в 4.8)
👉 Куча багфиксов
Вышел 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
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
👉 Поддержка 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
#test #tooling
🤔38👍20🔥10😁2🤯2👎1
Как можно хранить стабы для MockWebServer в Android-тестах
Команда Delivery Club Tech делится опытом подмены ответов сервера для проведения UI тестов без необходимости общаться с сервером и проверки разных сценариев в зависимости от ответа с backend. Стек: OkHttp3 + Retrofit + JUnit
#test
Команда Delivery Club Tech делится опытом подмены ответов сервера для проведения UI тестов без необходимости общаться с сервером и проверки разных сценариев в зависимости от ответа с backend. Стек: OkHttp3 + Retrofit + JUnit
#test
👍28👎11⚡2😁2
Why go with Paparazzi? Our journey with Android Screenshot Testing (5 мин)
Разбор что такое скриншот тестирование, зачем оно делается и библиотеки Paparazzi для скриншот тестирования без устройства. Плюсы - скорость работы, и нет проблем с эмуляторами/устройствами.
#test
Разбор что такое скриншот тестирование, зачем оно делается и библиотеки Paparazzi для скриншот тестирования без устройства. Плюсы - скорость работы, и нет проблем с эмуляторами/устройствами.
#test
👎13👍3
Обязательная поддержка страницы размером 16K в Android 15 позволит получить много преимуществ для устройств по замерам Google:
👉 Скорость запуска приложений становится выше при малом количестве свободной памяти
👉 Быстрее скорость запуска системы
👉 Приложение камеры запускается быстрее
Изменение заденет тех кто использует NDK при разработке и все еще работает со страницами размером 4K. Чтобы проверить работоспособность вашего приложения можно по инструкции тут, а узнать больше про изменения в документации
#android15 #ndk
👉 Скорость запуска приложений становится выше при малом количестве свободной памяти
👉 Быстрее скорость запуска системы
👉 Приложение камеры запускается быстрее
Изменение заденет тех кто использует NDK при разработке и все еще работает со страницами размером 4K. Чтобы проверить работоспособность вашего приложения можно по инструкции тут, а узнать больше про изменения в документации
#android15 #ndk
👍3
В 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
Изменение размера страницы в памяти от 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