首页 文章

React JS Jest导致“SyntaxError:Unexpected token” .

提问于
浏览
10

我现在使用反应JEST来测试代码 . 如果一个组件是单个的,而不是导入任何其他组件,“npm test”运行顺利,现在,我想要一起测试多个组件,我立即得到了这个错误:

SyntaxError: Unexpected token .

似乎每当反应导入其他东西时,例如:

require( './style/fixed-data-table.css' );
require( './style/jnpr-datatable.scss' );

然后使用jest抛出意外的令牌“ . ”错误 .

我的设置一定有问题,但在哪里?我的Package.json包含:

"jest": {
   "unmockedModulePathPatterns": [
     "<rootDir>/node_modules/react/",
     "<rootDir>/node_modules/react-dom/",
     "<rootDir>/node_modules/react-addons-test-utils/"
   ]
 }

而.babelrc已经在根目录中了 . 还包括babel-jest . 谢谢

2 回答

  • 15

    看看webpack integration的开玩笑文档 . 问题是,开玩笑不能与其他东西一起工作然后js . 所以你必须模拟你导入的所有无js文件 . 最简单的方法是在你的玩笑配置中配置 moduleNameMapper .

    {
      "jest": {
        "moduleNameMapper": {
          "\\.(css|scss)$": "<rootDir>/__mocks__/styleMock.js"
        }
      }
    }
    

    __mocks__/styleMock.js 看起来像这样 .

    module.exports = {};
    
  • 0

    我摆脱这种方式的方法是将这两行添加到我的 .babelrc 文件中

    {
        "presets": ["env", "react"],
        "plugins": ["transform-class-properties"]
    }
    

    我的package.json看起来像这样:

    {
      "name": "crud-redux",
      "version": "0.1.0",
      "private": true,
      "dependencies": {
      "react": "^16.4.0",
      "react-dom": "^16.4.0",
      "react-scripts": "1.1.4"
    },
     "scripts": {
     "start": "react-scripts start",
     "build": "react-scripts build",
     "test": "NODE_ENV=test jest",
     "eject": "react-scripts eject"
    },
      "devDependencies": {
      "babel-jest": "^18.0.0",
      "babel-loader": "^6.4.1",
      "babel-plugin-transform-decorators-legacy": "^1.3.5",
      "enzyme": "^2.9.1",
      "jest": "^23.1.0",
      "react-addons-test-utils": "^15.6.2",
      "react-test-renderer": "^15.6.2",
      "redux-mock-store": "^1.5.1",
      "webpack": "^1.15.0",
      "webpack-dev-server": "^1.16.5"
      }
    }
    

相关问题