«Не забудь зробити знімок компоненти!». Стисло про Snapshot-тестування на Jest

Сергій Єрьомін

«І не забудьте зробити знімок (Snapshot) компоненти!»

Ви часто можете почути таку фразу від вашого тим-ліда.

Ні, це не фото на пам’ять з вашою компонентою. І точно не JPEG або PNG.

Snapshot у Jest — це механізм для тестування інтерфейсу користувача, який дозволяє зберегти «знімок» вигляду компоненти на певний момент часу. Цей знімок містить рендерену версію компонента. Під час наступних запусків тестів, Jest порівнює актуальний рендер зі збереженим знімком. Якщо є різниця, тест не пройде, що вказує на те, що вигляд або структура компоненти змінилися.

 

Основні моменти про snapshot-тестування:

  • Створення: Коли ви запускаєте тест вперше, Jest створює snapshot і зберігає його у файлі.
  • Порівняння: При наступних запусках тестів Jest порівнює поточний рендер зі збереженим snapshot.
  • Оновлення: Якщо зміни у компоненті були очікуваними, ви можете оновити snapshot до нової версії.

Snapshot-тестування корисне, коли потрібно стежити, чи компоненти рендеряться очікуваним чином. Воно забезпечує додатковий шар захисту від ненавмисних змін у вашому коді.

Чи можу я побачити зміну шрифта за допомогою Snapshot?

Ні, snapshot-тестування в Jest не дозволяє побачити зміни шрифту, або інших стилів, які не відображаються у вихідному HTML-коді компоненти. Snapshots зберігають лише структуру JSX/HTML, яку рендерить компонента, і не включають інформацію про CSS-стилі, такі як колір, розмір шрифту, або інші візуальні властивості.

Сподіваюся, було цікаво. Дякую, що читаєте!

Цей текст з особистого блогу, опублікований з дозволу автора.

Останні статті

Diia.City United закликала Верховну Раду врахувати потреби бізнесу й внести зміни в Defence City

Diia.City United закликає ґрунтовно переробити законопроєкт «Defence City» та під час другого читання врахувати потреби…

01.08.2025

Айтівець з SQUAD загинув разом із донькою та собакою внаслідок атаки на Київ 31 липня

Спеціаліст з ІТ-підтримки із SQUAD Віталій Рабощук, його 18-річна донька Влада та пес Спайк загинули,…

01.08.2025

Google випустила модель міркування Gemini Deep 2.5 Think, яка одночасно тестує кілька ідей

Команда Google DeepMind випустила Gemini 2.5 Deep Think — модель міркування, яка здатна відповідати на…

01.08.2025

Нова функція Android Studio автоматично виконує складні багатоетапні завдання кодування для кількох файлів

Google представила стабільний реліз нової функції Narwhal для Android Studio. Вона має режим агента Gemini,…

01.08.2025

OpenAI відключила функцію, яка дозволяла Google індексувати діалоги з ChatGPT

Дослідники помітили, що пошукова система Google почала індексувати публічні посилання на діалоги з ChatGPT, внаслідок…

01.08.2025

Багхантери залишаться в минулому: на зміну ручному пошуку багів приходять агенти

У кібербезпеці помічена нова тенденція: тепер уразливості в коді все частіше шукають не люди, а…

01.08.2025