Как проверить localStorage в моем приложении реакции? - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть личный маршрут в моем приложении реагирования, и когда я использую jest и запускаю тест на пряжу, чтобы проверить свое приложение, и это показывает, что в моем файле PrivateRoute есть одна строка без покрытия.Это строка 8 в коде localStorage.getItem,

enter image description here

Как получить покрытие для этой линии?

Ответы [ 3 ]

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

Вы можете использовать так: -

const result = '{ "name":"John", "age":30, "car":"bmw"}';

//set json object to storage 
localStorage.setItem('user', JSON.stringify(result));

//get object
const value = localStorage.getItem('user');

//remove object
localStorage.removeItem('user');
0 голосов
/ 13 февраля 2019

Поместите это в свои файлы инициализатора теста:

const localStorageMock = {
  getItem: jest.fn(),
  setItem: jest.fn(),
  clear: jest.fn()
};

global.localStorage = localStorageMock;

Так что теперь вы можете просто использовать localStorageMock глобально

expect(localStorageMock.getItem).toHaveBeenCalledWith('access_token')

Единственное, что нужно, этоубедитесь, что в ваших тестах есть jest.clearAllMocks() шаг очистки, чтобы макет был повторно инициализирован для других тестов.

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

localStorage.getItem должен быть подсмотрен до ожидаемого вызова:

jest.spyOn(localStorage, 'getItem');

И утверждал, что он был вызван впоследствии:

expect(localStorage.getItem).toBeCalledWith('access_token');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...