Reactjs 如何使用FacebookJest测试.jsx文件,找不到模块

Reactjs 如何使用FacebookJest测试.jsx文件,找不到模块,reactjs,ecmascript-6,jestjs,Reactjs,Ecmascript 6,Jestjs,我通过以下链接查看如何使用jest测试React代码: 在我想测试我们当前的组件之前,一切都是可以找到的。Out组件的编写方式如下: let React = require('react'); var CheckboxWithLabel = React.createClass({ getInitialState: function() { return { isChecked: false } }, onChan

我通过以下链接查看如何使用jest测试React代码:

在我想测试我们当前的组件之前,一切都是可以找到的。Out组件的编写方式如下:

let React = require('react');
var CheckboxWithLabel =  React.createClass({
    getInitialState: function() {
        return {
            isChecked: false
        }
    },
    onChange: function(){
        this.setState({isChecked: !this.state.isChecked});
    },
    render: function(){
        return (
                 <label>
                    <input
                      type="checkbox"
                      checked={this.state.isChecked}
                      onChange={this.onChange}
                    />
                    {this.state.isChecked ? this.props.labelOn : this.props.labelOff}
                  </label>  
        )
    }
});
module.exports = CheckboxWithLabel;
因为我们当前的大多数代码都是以.jsx格式编写的,使用的是对象样式,而不是类样式,我如何才能使它与jest一起工作


谢谢

您需要在jest选项中添加其他设置:

"jest": {
  "moduleFileExtensions": [
    "js",
    "jsx"
  ],
}
这将允许jest测试扩展名为.js和.jsx的文件

Using Jest CLI v12.1.1, jasmine2, babel-jest
 FAIL  __tests__/checkboxWithLabel-test.js
● Runtime Error
  - Error: Cannot find module '../CheckboxWithLabel' from 'checkboxWithLabel-test.js'
        at Resolver.resolveModule (node_modules/jest-cli/node_modules/jest-resolve/src/index.js:117:17)
        at Object.<anonymous> (__tests__/checkboxWithLabel-test.js:1:162)
{
  "dependencies": {
    "react": "~0.14.0",
    "react-dom": "~0.14.0"
  },
  "devDependencies": {
    "babel-core": "^6.9.0",
    "babel-jest": "^9.0.0",
    "babel-polyfill": "*",
    "babel-preset-es2015": "*",
    "babel-preset-react": "*",
    "jest-cli": "*",
    "react-addons-test-utils": "~0.14.0"
  },
  "scripts": {
    "test": "jest"
  },
  "jest": {
    "unmockedModulePathPatterns": [
      "<rootDir>/node_modules/react/",
      "<rootDir>/node_modules/react-dom/",
      "<rootDir>/node_modules/react-addons-test-utils/"
    ]
  }
}
{
  "presets": ["es2015", "react"]
}
"jest": {
  "moduleFileExtensions": [
    "js",
    "jsx"
  ],
}