Skip to main content

Що таке снапшотне тестування?

Снапшотне тестування - це спосіб тестування, за якого фіксується поточне представлення результату (наприклад, розмітки компонента, об'єкта або рядка), і під час наступних запусків тестів цей результат порівнюється зі збереженим снапшотом. Якщо результат змінився, тест падає.


Як це працює по суті

  1. Тест уперше запускається і зберігає «зліпок» результату в окремий файл, снапшот.
  2. Під час наступних запусків тестів Jest знову генерує результат.
  3. Якщо новий результат точно збігається зі снапшотом, тест зелений.
  4. Якщо ні, Jest повідомляє, що поведінка змінилася.

Коли це корисно

  • під час тестування React-компонентів (розмітка JSX)
  • під час тестування складних об'єктів, які незручно перевіряти вручну
  • коли важлива структура результату, а не окремі поля

Що дає снапшот

  • дозволяє помітити несподівані зміни в UI або даних
  • прискорює тестування складних структур
  • слугує «контрольною точкою» поточного стану компонента або функції

Приклад (загальне розуміння)

Якщо компонент раніше повертав таку розмітку:

html
<button>Send</button>

а після зміни коду почав повертати:

html
<button>Send message</button>

снапшот-тест це впіймає, тому що розмітка вже не збігається зі збереженим снапшотом.


Головна ідея

Снапшотне тестування - це автоматична фіксація і контроль змін результату, щоб розробник заздалегідь розумів, що саме змінилося і чи є це очікуваною поведінкою.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.