"ReferenceError: document not defined" при попытке протестировать проект create-response-app
Это мой файл __tests__/App.js
:
import React from 'react';
import ReactDOM from 'react-dom';
import App from '../src/containers/App';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<App />, div);
});
// sanity check
it('one is one', () => {
expect(1).toEqual(1)
});
И это результат, который я получаю при запуске yarn test
:
FAIL __tests__/App.js
● renders without crashing
ReferenceError: document is not defined
at Object.<anonymous>.it (__tests__/App.js:6:15)
✕ renders without crashing (1ms)
✓ one is one
Test Suites: 1 failed, 1 total
Tests: 1 failed, 1 passed, 2 total
Snapshots: 0 total
Time: 0.128s, estimated 1s
Ran all test suites related to changed files.
Нужно ли мне импортировать другой модуль, чтобы document
был доступен здесь?
Спасибо за помощь!
Ответы
Ответ 1
Для меня любой из них работал
В файле добавления пакета file.json script флаг env
"scripts": {
"test": "react-scripts test --env=jsdom"
}
Использование фермента
import { shallow } from 'enzyme';
it('renders without crashing', () => {
shallow(<App />);
});
Ответ 2
Размещение комментария в верхней части источника для юнит-теста
/**
* @jest-environment jsdom
*/
сигнализирует о шутке над документом и окном.
Ответ 3
Если вы используете create-react-app
, запустите yarn test
вместо yarn jest
или что-то еще.