Dies ist meine __tests__/App.js
-Datei:
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)
});
Und dies ist die Ausgabe, die ich bekomme, wenn yarn test
ausgeführt wird
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.
Muss ich ein anderes Modul importieren, damit document
hier verfügbar ist?
Danke für die Hilfe!
Für mich funktionierte eines davon
In der package.json-Datei wird das Env-Flag für Testskript hinzugefügt
"scripts": {
"test": "react-scripts test --env=jsdom"
}
Enzym verwenden
import { shallow } from 'enzyme';
it('renders without crashing', () => {
shallow(<App />);
});
Platzieren Sie den Kommentar oben in Ihrer Unit-Test-Quelle
/**
* @jest-environment jsdom
*/
signalisiert Scherz, Dokument und Fenster zu verspotten.
Wenn Sie create-react-app
verwenden, müssen Sie yarn test
anstelle von yarn jest
oder etwas anderem ausführen.