开玩笑:测试套件无法运行,意外令牌 =
Posted
技术标签:
【中文标题】开玩笑:测试套件无法运行,意外令牌 =【英文标题】:Jest: Test suite failed to run, Unexpected token = 【发布时间】:2018-05-01 03:27:57 【问题描述】:我正在尝试使用 Jest/Enzyme 测试 React 组件。我希望测试至少可以运行,但是在导入文件时它已经失败并且没有进入测试本身。所以我想知道我缺少什么配置?
错误:
__tests__/Favorite.test.js
● Test suite failed to run
/src/components/favorite/Favorite.js: Unexpected token (13:13)
11 |
12 |
> 13 | isFavorite = (props) =>
| ^
14 | return localStorage.getItem(props.recipe.id) ? true : false
15 |
16 |
测试文件:
import React from 'react'
import mount from 'enzyme'
import Favorite from '../src/components/favorite/Favorite'
describe('Favorite', () =>
const recipe = id: "12345"
const favorite = mount(<Favorite recipe=recipe/>)
// assertions
)
.babelrc:
"presets": ["es2015", "react"]
package.json:
"devDependencies":
"babel-jest": "^21.2.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"enzyme": "^3.2.0",
"enzyme-adapter-react-16": "^1.1.0",
"enzyme-to-json": "^3.2.2",
"jest": "^21.2.1",
"react-test-renderer": "^16.1.1"
,
"jest":
"setupTestFrameworkScriptFile": "./src/setupTests.js",
"moduleNameMapper":
"\\.(css|jpg|png|svg|ico)$": "<rootDir>/empty-module.js"
更新:
当我将函数的声明从胖箭头更改为函数关键字时,测试运行。我想知道为什么?
不适用于 Jest 的胖箭头功能:
// Favorite.js
isFavorite = (props) =>
return localStorage.getItem(props.recipe.id) ? true : false
适用于 Jest 的函数关键字:
// Favorite.js
isFavorite(props)
return localStorage.getItem(props.recipe.id) ? true : false
【问题讨论】:
你声明它为 var/let/const 了吗? 我也试过了,但它给了我同样的错误信息。最重要的是,该应用程序无法在浏览器中编译。 【参考方案1】:您错过了babel-preset-stage-0
包。
添加:yarn add babel-preset-stage-0 --dev
编辑您的.babelrc
: "presets": ["es2015", "react", "babel-preset-stage-0"]
【讨论】:
以上是关于开玩笑:测试套件无法运行,意外令牌 =的主要内容,如果未能解决你的问题,请参考以下文章
用 Create React App 开玩笑:测试套件无法运行 - 意外的令牌
开玩笑:测试套件无法运行(Expo SDK 需要 Expo 才能运行)