当我运行测试时,代码中出现了“意外的令牌错误:
const wrapper = shallow(<WelcomeMessage/>");
错误被抛出到“(
我写过笑话测试。这是我第一次使用酶和react编写测试用例。所以我不熟悉这个设置。我已经安装了:babel jest、react dom、babel插件转换导出扩展、enzyme-adapter-react-16、react测试渲染器、@babel/preset env和@babel/core
package.json:
{
"private": true,
"version": "0.0.0",
"name": "example-jquery",
"devDependencies": {
"@babel/core": "*",
"@babel/preset-env": "^7.4.4",
"babel-jest": "^24.8.0",
"babel-plugin-transform-export-extensions": "^6.22.0",
"enzyme": "^3.9.0",
"enzyme-adapter-react-16": "^1.12.1",
"jest": "^24.8.0",
"jest-dom": "^3.1.4",
"jest-useragent-mock": "0.0.3"
},
"dependencies": {
"jest-puppeteer": "^4.1.1",
"jquery": "^3.4.1",
"jsdom": "^15.0.0",
"puppeteer": "^1.15.0",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-test-renderer": "^16.8.6"
},
"scripts": {
"test": "jest --verbose"
},
"jest": {
"transform": {
"^.+\\.jsx?$": "babel-jest"
}
}
}
jest.config.js:
module.exports = {
preset: 'jest-puppeteer',
"bail": 0,
setupFiles: ['<rootDir>/enzyme.config.js'],
moduleFileExtensions: ['js', 'json', 'jsx'],
transformIgnorePatterns: ['<rootDir>/node_modules/']
}
enzyme.config.js:
const Enzyme = require('enzyme');
const Adapter = require('enzyme-adapter-react-16');
Enzyme.configure({ adapter: new Adapter() });
. Babelrc:
{
"presets": ["@babel/preset-env"],
"plugins": ["transform-export-extensions"],
"only": [
"./**/*.js",
"node_modules/jest-runtime"
]
}
欢迎essage.test.js:
import React from 'react';
import { shallow } from 'enzyme';
// Components
import WelcomeMessage from './WelcomeMessage';
function setup() {
const props = {
imgPath: 'some/image/path/to/a/mock/image',
};
const wrapper = shallow(<WelcomeMessage />);
return { wrapper, props };
}
describe('WelcomeMessage Test Suite', () => {
it('Should have an image', () => {
const { wrapper } = setup();
expect(wrapper.find('img').exists()).toBe(true);
});
});
这一行:
<WelcomeMessage />
是JSX,它“只为React.createElement
函数提供语法糖”。
由于JSX实际上不是有效的JavaScript代码,因此必须将其编译为React.createElement
调用。
这是由Babel
插件@Babel/plugin transform react jsx
完成的,它是@Babel/preset react
的一部分。
添加@Babel/preet-reacts
到您的Babel
配置,这应该可以解决问题。
我正在尝试在我当前的React应用程序项目中加入Jest来进行一些测试。 这对于一个简单的javascript文件非常有效,但是当我尝试引用一个使用import的文件时,它抛出了一个错误“Jest遇到了一个意外的标记” 我一直在看下面的指南,发现我没有.bablerc文件 https://jestjs.io/docs/en/webpack 所以,根据示例,我添加了一个带有以下内容的测试,但这对我运
我已经为连接的组件创建了测试。在一个文件中,我导入位于项目根文件夹外部的“本地化”模块。它没有被编译到ES5,Jest报告了同步错误:意外令牌导出。如何强制Jest转换该文件? 我有。带环境预设的巴别LRC。 package.json
我正在学习反应,我想测试我的一个组件,但我坚持这个错误: 以下是我在阅读stackoverflow和github上的帖子时尝试过的一些东西 添加了测试预设和这些插件“变换-es2015-moids-Common js”、动态导入节点”到我的babel配置 在我的包裹里。json Jest属性具有以下设置: 我的实际组件是用ES6和typescript构建的,如果这对您有帮助的话:) 从我所读到的内
我正在尝试为Vue编写单元测试,它是在Laravel环境中建立的。我按照这篇文章设置项目进行测试。但它并没有像预期的那样工作,我在运行
问题内容: 我尝试了以下简单的JavaScript代码: 例如,在Chrome控制台中,这将返回 SyntaxError:意外令牌: 我在JSONLint上尝试了JSON ,它是有效的。 您看到错误了吗? 问题答案: FWIW,改为使用。比。
问题内容: 尝试解析此JSON字符串时出现错误 扩展的字符串对象: 问题答案: 验证您的json字符串。如果可以,请尝试以下操作: