Просто для завершения:
Если Jest запускает тест моментального снимка, а моментальный снимок еще не существует, он его создаст.Из документов :
При последующих тестовых прогонах Jest просто сравнивает визуализированный вывод с предыдущим снимком.Если они совпадают, тест пройден.Если они не совпадают, либо тестировщик обнаружил ошибку ... либо реализация изменилась, и снимок необходимо обновить.
Обратите внимание, что
Артефакт снимка должен быть зафиксирован вместе с изменениями кода и проверен как часть процесса проверки кода.
Тестирование снимка чаще всего используется для кода пользовательского интерфейса, но это не такозначает, что для кода пользовательского интерфейса можно использовать только .
Для описываемого теста при первом запуске теста будет создан снимок со значением 3
.
Вы, как разработчик, должны убедиться, что значение верное, и проверить моментальный снимок с вашим исходным кодом.
В конечном итоге это тот же процесс, что и проверка того, что выпередал правильное значение 3
во что-то вроде .toBe(3)
и проверил это утверждение в вашем исходном коде.
Так что да, это верный способ проверить тестируемую функцию.
Сказавпри этом для toMatchSnapshot
накладных расходов намного больше, чем для toBe
, поэтому для такого простого теста имеет смысл просто использовать .toBe(3)
вместо .toMatchSnapshot()
.
Тестирование снимковнаиболее полезен для сложных значений, таких как пользовательский интерфейс, которые будут раздувать ваши тестовые файлы, если они будут встроены и требуют точного обновления.При тестировании моментальных снимков они хранятся в отдельном файле, и обновления можно легко сделать, сказав Jest
обновить моментальный снимок после проверки правильности обновленного значения.