Спасибо за статью. ASM и генерация байт-код интересная штука. Мы у себя на работе пишем плагин под Android, который добавляет байт-код инструкции в существующие классы фреймворка, как (fragment, activity), или в различные библиотеки (okhttp, jetpack compose).
Согласен, тестирование и контроль качества не тривиальное дело, но все возможно. Как минимум, можно проверить, что ClassLoader может загрузить измененный класс.
Мы в тестах применяем наш плагин, через кастомный лоадер грузим классы и через рефлексию дергаем нужный нам функционал, ну и смотрим результаты.
Ну и финальный шаг - используем приложение тестовое , применяем плагин и пишем end2end тесты и смотрим поведение.
Спасибо за статью. ASM и генерация байт-код интересная штука. Мы у себя на работе пишем плагин под Android, который добавляет байт-код инструкции в существующие классы фреймворка, как (fragment, activity), или в различные библиотеки (okhttp, jetpack compose).
Согласен, тестирование и контроль качества не тривиальное дело, но все возможно. Как минимум, можно проверить, что ClassLoader может загрузить измененный класс.
Мы в тестах применяем наш плагин, через кастомный лоадер грузим классы и через рефлексию дергаем нужный нам функционал, ну и смотрим результаты.
Ну и финальный шаг - используем приложение тестовое , применяем плагин и пишем end2end тесты и смотрим поведение.
Спасибо за статью. Мой коллега недавно написал библиотеку для Screenshot тестирования. Может понравится: https://github.com/alexander-kulikovskii/toster