2017-04-25 52 views
0

我试图用JEST for React设置单元测试。Bable不编译JSX for Jest/React

我的当前设置里面的package.json:

"jest": { 
"transform": { 
    "^.+\\.jsx?$": "babel-jest" 
}, 
"moduleFileExtensions": [ 
    "js", 
    "json", 
    "jsx" 
] 

}

然后里面.babelrc我:

{ 
    "plugins": ["syntax-dynamic-import", "transform-runtime"], 
    "presets": [ 
    [ 
     "es2015", 
     { 
     "modules": false 
     } 
    ], 
    "react" 
    ], 
    "env": { 
    "test": { 
     "presets": ["es2015", "react"] 
    } 
    } 
    } 

我然后运行NPM测试,并随后开始运行开玩笑。但是,它会报错/不合格: 测试套件未能在

    componentDidMount=()=>{ 
      |     ^
     25 |   window.addEventListener('scroll', this.handleScroll) 
     26 |  } 

用错误来运行这是告诉我,而测试输入正确的组件,它最终停止在一些ES2015语法。

我有什么设置错了吗?在JEST试图运行它的测试之前,似乎babelrc实际上并没有进行转译?它是否正确? 我的.babelrc位于根级别。

+0

看起来你的代码在“componentDidMount”定义的周围有一些语法错误。如果你的'componentDidMount'被定义为一个对象的属性,你应该使用':'而不是'='。否则,请在此处显示您的代码。 –

+0

@PhilipTzou这只是我的React组件中的componentDidMount react lifecyle方法。运行该应用程序,此方法正常工作,没有错误。 – Srmuhs

+0

'componentDidMount =()=> {...}'代码似乎不正确。你可以发布上下文代码,以便我们可以深入了解它吗? –

回答