wake-up-neo.com

"ReferenceError: Dokument ist nicht definiert" beim Testen eines Create-React-App-Projekts

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!

12
SeanPlusPlus

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 />);
 });
18
kushalvm

Platzieren Sie den Kommentar oben in Ihrer Unit-Test-Quelle

/**
 * @jest-environment jsdom
 */

signalisiert Scherz, Dokument und Fenster zu verspotten.

0
jlb

Wenn Sie create-react-app verwenden, müssen Sie yarn test anstelle von yarn jest oder etwas anderem ausführen.

0
0xcaff