Проблема тестирования React Jest - PullRequest
0 голосов
/ 02 августа 2020
• 1000 1004 *

в моем отчете об испытаниях говорится, что у меня есть несколько непокрытых строк в этом методе, которые я хотел бы осветить:

headerbar.jsx |    78.95 |       75 |      100 |    78.95 |       21,22,26,27

Строка 21: alert("Failed to connect to server: " + err);

Строка 22: return;

Строка 26: alert("Error when connecting to server: status code " + response.status);

Строка 27: return;

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

1 Ответ

0 голосов
/ 02 августа 2020

Вы должны протестировать Network error и получить ответ со статусом, отличным от 204. Кроме того, если вы действительно хотите протестировать alert, вам придется шпионить за ним.

Я лично использую axios-mock-adapter для тестирования моих вызовов API, и с его использованием ваши оставшиеся тесты будут выглядят так:

import MockAdapter from 'axios-mock-adapter';

const mock = new MockAdapter(axios);
mock.onPost(url).networkError();

const alert = jest.spyOn(window, 'alert');

//mount your component and simulate your function

expect(alert).toHaveBeenCalledWith('Failed to connect to server: Network Error');
mock.restore();
alert.mockClear();

и

import MockAdapter from 'axios-mock-adapter';

mock.onPost(url).reply(200, 'status code other than 204');

const alert = jest.spyOn(window, 'alert');

//mount your component and simulate your function

expect(alert).toHaveBeenCalledWith('Error when connecting to server: status code 200');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...