Я создал пустое приложение с create-react-app
. он предоставляет тестовый скрипт в pckage.json и образец App.test.js. на первом этапе я хочу настроить тестовую среду в соответствии с документацией create-реакции-app . в моем приложении я буду использовать localStorage.
скажем, действие, подобное приведенному ниже, для проверки
export const cancel = () => {
localStorage.removeItem("MyAppData");
return { type: types.USER_CANCEL};
};
помимо части фермента, он показывает, как инициализировать localStorage
. поэтому я получил файл setupTests.js
, например
import { configure } from "enzyme";
import Adapter from "enzyme-adapter-react-16";
// react-testing-library renders your components to document.body,
// this will ensure they're removed after each test.
import "react-testing-library/cleanup-after-each";
// this adds jest-dom's custom assertions
import "jest-dom/extend-expect";
configure({ adapter: new Adapter() });
const localStorageMock = {
getItem: jest.fn(),
setItem: jest.fn(),
clear: jest.fn()
};
global.localStorage = localStorageMock;
здесь, если я не импортирую jest
из jest, jest-dom или jest-фермента, ESLinter показывает ошибку в jest.fn()
, что jest не определен. когда я импортирую и запускаю yarn test
, я получаю
$ react-scripts test --env=jsdom
FAIL src\App.test.js
● Test suite failed to run
TypeError: _jest2.default.fn is not a function
at Object.<anonymous> (src/setupTests.js:15:27)
at <anonymous>
Я действительно не получаю от QAs здесь и на других форумах, как мне настроить localStorage для тестирования.