首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >React JS Jest导致"SyntaxError:意外的令牌“。

React JS Jest导致"SyntaxError:意外的令牌“。
EN

Stack Overflow用户
提问于 2017-01-25 09:31:10
回答 3查看 18.9K关注 0票数 23

我现在正在使用react JEST来测试代码。如果一个组件是单一的,并且没有导入任何其他组件,那么"npm test“就可以顺利地运行,现在,我想要一起测试多个组件,并且我立即得到了这个错误:

代码语言:javascript
复制
SyntaxError: Unexpected token .

似乎每当react正在导入其他东西时,就像这样:

代码语言:javascript
复制
require( './style/fixed-data-table.css' );
require( './style/jnpr-datatable.scss' );

然后使用jest就是抛出意想不到的标记。错误。

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

代码语言:javascript
复制
 "jest": {
   "unmockedModulePathPatterns": [
     "<rootDir>/node_modules/react/",
     "<rootDir>/node_modules/react-dom/",
     "<rootDir>/node_modules/react-addons-test-utils/"
   ]
 }

并且.babelrc已经在根目录中。此外,还包括babel-jest。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-25 20:34:58

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

代码语言:javascript
复制
{
  "jest": {
    "moduleNameMapper": {
      "\\.(css|scss)$": "<rootDir>/__mocks__/styleMock.js"
    }
  }
}

它的__mocks__/styleMock.js看起来像这样。

代码语言:javascript
复制
module.exports = {};
票数 31
EN

Stack Overflow用户

发布于 2021-07-27 05:04:29

最简单的方法是添加一个identity-obj-proxy包:

yarn add --dev identity-obj-proxy

并使用它自动模拟CSS/SCSS模块。

将此代码添加到package.json

代码语言:javascript
复制
  "jest": {
    "moduleNameMapper": {
      "\\.(css|scss)$": "identity-obj-proxy"
    }
  }

或者将以下内容添加到jest.config.ts

代码语言:javascript
复制
moduleNameMapper: {
  '\\.(css|scss)$': 'identity-obj-proxy'
}

这样,(S)CSS模块类名将在测试中自动检索。

这是source

票数 2
EN

Stack Overflow用户

发布于 2018-06-04 09:06:41

我的方法是将以下两行添加到我的.babelrc文件中

代码语言:javascript
复制
{
    "presets": ["env", "react"],
    "plugins": ["transform-class-properties"]
}

我的package.json是这样的:

代码语言:javascript
复制
{
  "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"
  }
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41841968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档