Веб-версияОткрыть в Telegram

Пост👋 Привет Пол (и все, кто интересуется улучшением процесса тестирования)

12 октября 2024
Н
Никита Поляков
👋 Привет Пол (и все, кто интересуется улучшением процесса тестирования) Сегодня я хочу поделиться с вами подходом к работе с тестовыми данными, который я активно использую каждый день. Я храню тестовые данные в JSON-файлах и написал библиотеку для работы с ними. Давайте разберёмся, почему это так удобно и как это может упростить вашу жизнь. Преимущества подхода: 1️⃣ Наглядность данных На мой взгляд, JSON-файлы гораздо нагляднее, чем использование билдеров в коде. Данные можно легко читать и редактировать. 2️⃣ Понятность данных для стейкхолдеров Один из ключевых плюсов вытекает из предыдущего пункта: на прошлом проекте я мог прямо на встрече с бизнес-стейкхолдерами изменять тестовые данные в JSON-файле и после встречи начать править код. 3️⃣ Лаконичность тестов В тестировании есть замечательное правило: "Тест должен охватываться одним взглядом", что дает возможность использовать тесты как спецификацию. Вынесение данных в JSON позволяет свести их представление в тесте к одной строке. Такой подход помогает абстрагироваться от подготовки тестовых данных и сосредоточиться на главной ответственности тестов — непосредственном тестировании. 4️⃣ Работа с большими и сложными запросами JSON позволяет хранить сложные структуры данных, которые максимально приближены к тем, что используются в боевой среде и без излишней громоздкости. 5️⃣ Легкость дебага В случае необходимости можно взять JSON с боевой среды и использовать его для отладки проблемы прямо в юнит-тестах. 6️⃣ Интеграция с IDEA Еще одно удобство заключается в том, что с помощью IntelliJ IDEA можно легко навигироваться из теста прямо в JSON-файл. Это значительно ускоряет работу, ведь вы можете быстро переходить к данным, менять их и сразу видеть результат в тесте. (Скрин приложу в комментариях) Однако у такого подхода есть и свои недостатки: — Накопление неиспользуемых данных Со временем в JSON-файлах могут накапливаться лишние поля, которые перестали использоваться в коде. Это усложнит чтение и поддержку таких тестов в дальнейшем. — Некорректные данные Данные в JSON-файле могут не соответствовать актуальной валидации. Из-за этого есть риск потратить время зря на поиск проблемы в коде, хотя истинная проблема будет сокрыта в тестовых данных. В следующем посте обещаю рассказать про свою библиотеку, которая как раз решает перечисленные недостатки и значительно упрощает мою работу по написанию хороших тестов уже несколько лет.
1 · 277 ·

Рядом в ленте

ННикита ПоляковПривет Пол (и привет всем) В микросервисной архитектуре неочевидных вещей, конечно, немало, но согласованность данных в распределенных системах занимает отдельнННикита Поляков👋 Привет Пол (и всем привет) С Днем программиста! Пусть код становится чище, баги будут редкими, а Java – еще увлекательнее. Пол бы сказал, что идеальный код —
это сообщение
ННикита Поляков👋 Привет Пол (и все, кто интересуется улучшением процесса тестирования) Как и обещал, рассказываю о своей библиотеке для работы с тестовыми данными в формате JSННикита Поляков👋 Привет Пол (и все, кто любит чистый код) Хочу обсудить с вами решение, которое, на мой взгляд, облегчает восприятие кода и улучшает его читаемость. Дядюшка Бо
ППол — это JavaПол — это Java@polEtoJava · канал · Технологии
203подписчиков8 533средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем