как оценивается первый снимок - PullRequest
0 голосов
/ 13 февраля 2019
function sum(a,b) { return a+b;}

it("testing snapshot with sum",()=>{
  expect(sum(1,2)).toMatchSnapshot();
})

Как вышеприведенный тест проверяется на наличие ошибок, если тест возвращает значение, отличное от 3, в самом первом снимке?Я предполагаю, что это сравнительно сравнительно, но я не уверен, что его можно будет использовать там, где мы знаем, какое будет точное значение.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Просто для завершения:


Если Jest запускает тест моментального снимка, а моментальный снимок еще не существует, он его создаст.Из документов :

При последующих тестовых прогонах Jest просто сравнивает визуализированный вывод с предыдущим снимком.Если они совпадают, тест пройден.Если они не совпадают, либо тестировщик обнаружил ошибку ... либо реализация изменилась, и снимок необходимо обновить.

Обратите внимание, что

Артефакт снимка должен быть зафиксирован вместе с изменениями кода и проверен как часть процесса проверки кода.

Тестирование снимка чаще всего используется для кода пользовательского интерфейса, но это не такозначает, что для кода пользовательского интерфейса можно использовать только .


Для описываемого теста при первом запуске теста будет создан снимок со значением 3.

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

В конечном итоге это тот же процесс, что и проверка того, что выпередал правильное значение 3 во что-то вроде .toBe(3) и проверил это утверждение в вашем исходном коде.


Так что да, это верный способ проверить тестируемую функцию.

Сказавпри этом для toMatchSnapshot накладных расходов намного больше, чем для toBe, поэтому для такого простого теста имеет смысл просто использовать .toBe(3) вместо .toMatchSnapshot().

Тестирование снимковнаиболее полезен для сложных значений, таких как пользовательский интерфейс, которые будут раздувать ваши тестовые файлы, если они будут встроены и требуют точного обновления.При тестировании моментальных снимков они хранятся в отдельном файле, и обновления можно легко сделать, сказав Jest обновить моментальный снимок после проверки правильности обновленного значения.

0 голосов
/ 13 февраля 2019

Тестирование моментальных снимков с toMatchSnapshot() используется для проверки визуализированного пользовательского интерфейса, то есть HTML-кода ваших компонентов.

Если вы хотите выполнить модульное тестирование и проверить выводфункции, вы можете использовать совпадения, такие как toEqual, см. документ о Jest matchers .

В вашем случае:

function sum(a, b) { return a + b; }

it("testing snapshot with sum", () => {
    expect(sum(1, 2)).toEqual(3);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...