reactjs - React Jest 导致 "SyntaxError: Unexpected token ."

标签 reactjs jestjs babel-jest

我现在正在使用 React Jest 来测试代码。如果组件是单个组件,并且不导入任何其他内容,则“npm test”运行顺利。现在我想一起测试多个组件,我立即收到此错误:

SyntaxError: Unexpected token .

每当 React 导入其他东西时,比如这个:

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

最佳答案

查看 Webpack integration 的 Jest 文档。问题是 Jest 不能与 JavaScript 以外的其他东西一起工作。因此,您必须模拟导入的所有非 JavaScript 文件。最简单的方法是在 Jest 配置中配置 moduleNameMapper

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

使用__mocks__/styleMock.js,看起来像这样。

module.exports = {};

关于reactjs - React Jest 导致 "SyntaxError: Unexpected token .",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41841968/

相关文章:

javascript - 如何使用 npm 将自定义模块导入 babel-jest 测试?

reactjs - 尽管 Safari 桌面中的 overrideNative,VideoJS 没有质量级别/无法选择质量

javascript - React Native panresponder 元素可点击?

javascript - reactJS 应用程序呈现包含数组的对象数组

javascript - 在 Jest 中手动模拟对象

node.js - Nodejs Jest 单元测试无法从 Mongodb 查找、findOne 内部返回值

javascript - 由于 RSTTraversal 不可用,shallow() 失败

javascript - jest + typescript + es6 模块(又一次,2019 年)- SyntaxError : Unexpected token export

javascript - react 按钮下拉菜单

typescript - react-scripts 从 3.4 更新到 4.0 导致 Jest 版本错误