2016-05-02 6 views
7

Ich kann keine Jest-Tests ausführen und habe eine sehr vage Fehlermeldung. Ich fand ein ähnliches Problem in StackOverflow, und ich konnte es nicht mit dem Vorschlag lösen, jestSupport im react-Ordner in node_module hinzuzufügen.Laufzeitfehler Running Jest: in React

Ausgabe verwiesen: How to use Jest with React Native

__tests__/profile-test.js 
● Runtime Error 
TypeError: Cannot read property 'DEFINE_MANY' of undefined 

// Snippet von package.JSON

"scripts": { 
    "test": "jest" 
    }, 
    "jest": { 
    "scriptPreprocessor": "<rootDir>/node_modules/babel-jest" 
    }, 

// Testdatei

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import TestUtils from 'react-addons-test-utils'; 
import Profile from '../components/profile'; 
jest.setMock('react', {}); // put this in after reading a troubleshooting article 

//jest.autoMockOff(Profile); 


     describe('Profile'),() => { 

     it("renders a form containing user information", function() { 
      let Profile = TestUtils.renderIntoDocument(<Profile/>); 
      let renderedDOM =() => React.findDOMNode(Profile); 

      expect(renderedDOM.tagName).toBe('div'); 
      expect(renderedDOM.classList).toEqual(['value', 'image', 'btn btn-primary', 'btn btn-danger' ]); 

      var children = renderedDOM.querySelectorAll('fieldConfig.type'); //created a custom 
      expect(children.length).toBe(3); 
      expect(children[0]).toEqual({name: 'test mc nameyname', email: '[email protected]'}); 
      }); 
     }; 

Hat jemand, bevor sie in dieser Frage laufen, & Vorschläge haben?

+0

Haben Sie eine Lösung gefunden? – inquisitive

+0

Es tut mir leid, habe ich nicht. Ich entschied mich, Mocha, Chai und Enzyme explizit zu verwenden, um die Fehlermeldungen nach einem Gespräch mit einem Kollegen zu verdeutlichen. –

Antwort

2

Soweit ich sagen kann, benötigen Sie die verspotteten Versionen aller Module.

Try

jest.dontMock('react') 
jest.dontMock('react-dom') 
jest.dontMock('react-addons-test-utils') 
jest.dontMock('../components/profile') 

am Anfang der Datei setzen.

jest.setMock('react', {}); 

alle, die versuchen, und so weit ich kann sagen, dass es funktionieren sollte:

würde ich auch loszuwerden.

9

Putting in meinem package.json auf dem gleichen Niveau wie „Skripte“ für mich gearbeitet:

"jest": { 
    "unmockedModulePathPatterns": [ 
    "react" 
    ] 
} 

ich keine jest.dontMock Anweisungen an den Anfang meiner Testdatei hatte. Ich habe jest.unmock nur für das zu testende Modul verwendet.

+0

Das löste das Problem auch für mich, aber keine Ahnung warum. –