2017-04-09 2 views
1

Ich versuche, eine reaktive Komponente mit Enzym/Mocha zu testen und bin ein wenig verwirrt, wie man es aufstellt. HierMit Babel, um reagierende Komponenten mit Mocha zu testen

ist der Test

import React from 'react'; 
import { expect } from 'chai'; 
import { shallow, mount, render } from 'enzyme'; 
import Index from '../../public/js/components/polls/index' 

describe("INDEX", function() { 
    it("contains a div", function() { 
    expect(shallow(<Index />).contains(<div id="index">)).to.equal(true); 
    }); 

}); 

Hier ist der Befehl, den ich führen den Test zu starten:

env NODE_ENV=test mocha --compilers js:babel-register --require babel-polyfill --reporter spec --timeout 5000 --recursive 

Und hier ist der Fehler, den ich bekommen:

SyntaxError: /my_app/public/js/components/polls/index.js: Unexpected token (47:10) 
    45 | eachPoll(poll, i) { 
    46 |  return(
> 47 |   <Link to={"/poll/" + poll._id} key={poll._id}> 
    |   ^
    48 |    <div className="btn btn-info btn-block"> 
    49 |    {poll.name} 
    50 |    </div> 

Das Problem scheint mit JSX zu sein, aber ich bin in der Lage, diese Komponente mit Webpack gut zu erstellen. Was mache ich falsch?

+0

ist die Dateierweiterung '.js' oder' .jsx'? –

Antwort

3

Sie sollten Mokka laufen mit der babel-Register Option, um die Tests durch Babel auszuführen:

--compilers js:node_modules/babel-register 

sicher, dass Sie ein Verzeichnis .babelrc Datei in Ihrem Stamm haben. Es sollte mindestens das react Preset enthalten.

Beispiel für .babelrc:

{ 
    "presets": [ 
     "es2015", 
     "react" 
    ] 
} 
+0

Danke! Ich habe den Befehl in 'env NODE_ENV = test mocha --compilers js geändert: node_modules/babel-register --require babel-polyfill --reporter spec --timeout 5000 --recursive' und bekam den gleichen Fehler – stoebelj

+0

verwenden Sie ein' .babelrc' Datei? –

+0

ja '{ " Voreinstellungen ": [ " es2015 " ] } ' – stoebelj

Verwandte Themen