Юнит тесты

Все о них слышали. Некоторые утверждают, что якобы даже видели их своими глазами.

Но сам их никто никогда не писал.

А ты их писал? Или проверяешь у себя на проекте юниты разработчиков?

Если серьезно - модульные тесты могут сделать нашу работу вдвое проще и в ДЕСЯТКИ раз быстрее. Достаточно только уговорить разработчиков их написать 😂

Внимание к юнитам - признак зрелости тестировщика. Начинающий QA хочет тестировать всё сам: хоть вручную, хоть автотестами. Подрастаешь - и упираешься в то, что один на себе не вывезешь. Нужно делегировать.

И юниты - самый дешевый и быстрый способ это сделать.

Что они реально проверяют? Не интеграцию с внешними сервисами, увы. Но вот это - легко:

  • Все валидации → 400 ошибка + сообщение
  • Отрицательная сумма в поле «сумма» → отклонение
  • Строка вместо числа в user_id → парсинг падает
  • Граничные значения: 0, 255, 256 для поля с лимитом 255

Уже минус 20-30% негативных кейсов

Это всё логика. Она не требует БД, не ждет ответа от платежного шлюза. Пишется за 2 минуты и ловит 30% багов до того, как код ушел в тестирование.

А ещё юниты проверяют позитивные кейсы. Да, не все. Но с ними меньше шансов пропустить баг на тестовый контур - упавшие тесты повалят пайплайн и не дадут залить этот код в мастер.

Как это работает на практике

Задача: добавить поле «скидка» в заказ, от 0 до 100%.

Чек-лист от QA (булетами в тикете):

  • Скидка = 0 → принимается, цена не изменилась
  • Скидка = 100 → принимается, товар 0 рублей
  • Скидка = -1 → 400 ошибка
  • Скидка = 101 → 400 ошибка
  • Скидка = «пятьдесят» → 400 ошибка
  • Скидка = null → 400 ошибка
  • Скидка = 20 → товар за 200 ₽ вместо 250 ₽ (на 20% дешевле)

Разработчик видит это ДО написания кода. Пишет юниты под каждый пункт. Ты как QA валидируешь один сценарий: создал заказ → применил скидку 20% → сумма пересчиталась. По факту ВСЁ уже покрыто. Ты не тратишь время на ручную проверку граничных значений — они падают сразу при сборке.

Завтра на планировании спроси: «Какие кейсы из моего чек-листа ты можешь покрыть юнитами?»

Не «напиши юниты». Не «увеличь покрытие». А конкретно — какие пункты. Это показывает, что ты не требуешь абстрактного «качества», а думаешь о процессе.

И еще про покрытие Покрытие юнитами - тот еще холивар. Цифра процентов покрытия в юнитах НИЧЕГО не значит. Ну, то есть что-то значит, но это скорее референс, чем надежные данные. Не смотри на процент. Смотри на то, проверяют ли юниты условия, ветвления, граничные значения.

Знать, как писать юниты — не обязательно.

Но уметь составить чек-лист так, чтобы его легко было превратить в тесты - это крутой навык.

Сейчас - дарю самое полезное видео по юнитам. Мне кажется, его поймет даже тот, кто на Java никогда не писал.

Правда оно на английском. https://www.youtube.com/watch?v=vZm0lHciFsQ&t=473s

Юнит тесты
Все о них слышали.
Некоторые утверждают, что якобы даже видели их своими глазами.
Но сам их никто никогда не писал | Сетка — социальная сеть от hh.ru