2016-07-12 24 views
0

Ich habe 2 Varianten Code:TestUtils.renderIntoDocument return null, wenn sie als anonyme Funktion erklärt

FIRST (als Klasse deklarieren):

export default class COMPONENT_NAME extends React.Component{ 
    constructor(props){ 
    super(props); 
    this.props = props; 
    } 
    .... 
    render =() => <div className="clName"></div> 
} 

SECOND (erklären als anonyme Funktion):

export default (props) => <div className="clName"></div> 

JEST Code:

jest.dontMock('../js/components/COMPONENT_NAME/index'); 
const COMPONENT_NAME = require('../js/components/COMPONENT_NAME/index.js').default; 
var loaderComponent; 
... 
... 
function renderComponent() { 
    loaderComponent = TestUtils.renderIntoDocument(
    <COMPONENT_NAME /> 
    ); 
} 

Warum Test funktioniert nur im ersten Fall? Im zweiten Fall renderIntoDocument zurückgeben Null Ich kann keine Informationen darüber finden.

Die Frage ist also - unterstützt JEST die Darstellung von anonymen Funktionen?

Antwort

1

versuchen

Ändern
jest.dontMock('../js/components/COMPONENT_NAME/index'); 

zu

jest.unmock('../js/components/COMPONENT_NAME/index'); 
+0

Konfrontiert genau das gleiche Problem. habe unmoock anstelle von dontMock versucht, funktioniert aber nicht. –

-1

Sie sollten Ihre funktionale Komponente in div wickeln, wenn es um TestUtils.renderIntoDocument Funktion übergeben:

function renderComponent() { 
    loaderComponent = TestUtils.renderIntoDocument(
     <div> 
      <COMPONENT_NAME /> 
     </div> 
    ); 
} 
+0

bereits versucht, nicht helfen: Invariante Verletzung: findAllInRenderedTree (...): inst muss eine zusammengesetzte Komponente sein – artofatih

+0

Bieten Sie, bitte, vollständigen Code aus der Testdatei auf http://pastebin.com. – 1ven

+0

http://pastebin.com/qCZMAYja – artofatih