Как автотесты и GitHub Actions помогают улучшать свои пет-проекты
Привет. Сегодня поговорим о том, как я в последние 2 недели поправил свои пет-проекты, а также исправил серьёзные ошибки благодаря автотестам и налаженному CI/CD через GitHub Actions.
Какие проекты были подвергнуты изменениям?
Были подвергнуты многие мои петы. Начиная от самого заброшенного пета, и заканчивая самым интересным для меня. В основном, я дорабатывал слой БД, поправил сервисный слой, и многое другое.
Почему ручное тестирование — это (необходимое) зло?
Ручное тестирование ухудшает производительность разработчика, так как ему приходится вместо того, чтобы писать код, постоянно заходить в Postman, и тестировать API. Spring MockMvc делает это автоматически — достаточно написать тест, и запускать регулярно при серьёзных (и не только) изменениях.
А что с тестированием конкретной логики приложения? Spring Boot Test включает и инструменты для юнит-тестирования — JUnit, Mockito, и многое другое.
А как создать полноценное окружение для интеграционного тестирования? TestContainers позволяет создать контейнеризированное окружение для запуска полноценных сервисов — таких как PostgreSQL, например.
Ручное тестирование, разумеется, тоже необходима, но критические узлы кода всё-таки желательно покрыть тестами, чтобы уменьшить вероятность возникновения серьёзных ошибок — особенно уровня инцидента с Crowdstrike.
Что я получил от такого опыта?
Облегчил себе тестирование API и сервисного слоя.
Исправил несколько серьёзных ошибок (которые были вызваны моей невнимательностью, а также активному применению карго-культа).
Улучшил в целом качество кода.
Вывод
Автотесты — это лучшее, что было в моей жизни. Именно это позволило сосредоточиться на коде, и не тратить время на рутину, которую можно автоматизировать.
Также для улучшении качества кода я использую плагин Amplicode. Этот плагин позволил мне улучшить качество кода в слое БД, облегчить работу с Spring, и в принципе улучшить свою жизнь. А OpenIDE позволило мне получить лицензионно чистую версию IDEA, которая полностью идентична по опыту с оригинальной Intellij IDEA.
Это не реклама. Это мой опыт.