web-dev-qa-db-fra.com

"ReferenceError: le document n'est pas défini" lors d'une tentative de test d'un projet create-react-app

Ceci est mon fichier __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)
});

Et voici le résultat obtenu lors de l'exécution de 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.

Dois-je importer un autre module pour que document soit disponible ici?

Merci pour l'aide!

12
SeanPlusPlus

Pour moi, l'un ou l'autre a fonctionné 

Dans le fichier package.json, ajout de l'indicateur env du script de test

"scripts": {
   "test": "react-scripts test --env=jsdom"
}

Utilisation d'enzyme

 import { shallow } from 'enzyme';

 it('renders without crashing', () => {
  shallow(<App />);
 });
18
kushalvm

Si vous utilisez create-react-app, veillez à exécuter yarn test au lieu de yarn jest ou de quelque chose d'autre.

0
0xcaff