Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Jest测试ES6类时出现问题

使用Jest测试ES6类时出现问题
EN

Stack Overflow用户
提问于 2020-04-23 16:11:24
回答 2查看 703关注 0票数 1

我在使用jest对es6类进行单一测试时遇到了问题。我不知道配置是否正确,或者我是否需要一些额外的软件包。

这是我的文件queue.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default class Queue {
    constructor() {
        ...
    }
    //Adds a new elemnt to the queue
    method1(element) {
        ...
    }
    .
    .
    .
}

这是我的测试文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Queue from "../src/queue";

const myQueue = new Queue();

describe("Queue", () => {
    ...
    ...
    ...

});

这是我的.babelrc文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "presets": ["es2015"]
}

这是我的package.json文件。清理、构建和生产脚本都可以正常运行,但当我尝试运行测试时,就抛出了一个错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "name": "queue",
    "version": "1.0.0",
    "description": "An implementation of a queue data structure",
    "main": "queue.js",
    "scripts": {
        "test": "jest",
        "clean": "rm -dr dist",
        "build": "npm run clean && mkdir dist && babel src -s -d dist",
        "production": "npm run build && node bin/production"
    },
    "author": "Osiris Román",
    "license": "ISC",
    "jest": {
        "transform": {
            "^.+\\.js$": "babel-jest"
        }
    },
    "devDependencies": {
        "babel-cli": "^6.26.0",
        "babel-jest": "^25.4.0",
        "babel-preset-es2015": "^6.24.1",
        "babel-register": "^6.26.0",
        "jest": "^25.3.0"
    }
}

这是错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Plugin/Preset files are not allowed to export objects, only functions. In /home/usuario/practicing/javascript/queue/node_modules/babel-preset-es2015/lib/index.js

有人知道如何解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-25 10:49:40

你得到的错误意味着你的预设之一与巴别塔版本不兼容。

看看你的package.json,你使用的是babel版本6,但jestbabel-jest都使用的是更高版本的babel。这会导致es2015预设无法正常工作。

如果您绑定到当前版本的babel,则可以将jest和babel-jest依赖项降级为使用旧版本的babel:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm uninstall --save-dev babel-jest jest
npm install --save-dev babel-jest@23.6.0 jest@23.6.0

如果没有,我建议将你的babel版本(babel-clibabel-registerbabel-preset-es2015包)升级到更新的版本。

如果您遵循第二种方法,请注意,不推荐使用babel-preset-es2015,而建议使用@babel/preset-env

票数 1
EN

Stack Overflow用户

发布于 2020-04-29 07:10:01

我终于找到了解决这个问题的办法。如果其他人也有同样的问题,我会在这里分享配置。

这是我的文件queue.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default class Queue {
    constructor() {
        ...
    }
    //Adds a new elemnt to the queue
    method1(element) {
        ...
    }
    .
    .
    .
}

这是我的测试文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Queue from "../src/queue";

const myQueue = new Queue();

describe("Queue", () => {
    ...
    ...
    ...

});

我决定使用.babelrc文件的babel.config.js文件。这就是这个新文件的内容。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
    presets: [["@babel/preset-env", { targets: { node: "current" } }]],
};

这是我的package.json文件。干净的、构建的、开发的、生产的和测试的脚本运行正常,没有错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "name": "queue",
    "version": "1.0.0",
    "description": "An implementation of a queue data structure",
    "main": "queue.js",
    "scripts": {
        "test": "jest",
        "clean": "rm -dr dist",
        "build": "npm run clean && babel src -s -d dist ",
        "production": "npm run build && node bin/production",
        "dev": "npm run build && node bin/dev"
    },
    "author": "Osiris Román",
    "license": "ISC",
    "devDependencies": {
        "@babel/cli": "^7.8.4",
        "@babel/core": "^7.9.0",
        "@babel/preset-env": "^7.9.5",
        "@babel/register": "^7.9.0",
        "babel-jest": "^25.5.0",
        "jest": "^25.3.0"
    }
}

感谢@mgarcia的评论,我决定避免使用babel-preset-es2015,而是使用推荐的@babel/preset-env。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61391878

复制
相关文章
使用Jest测试原生TypeScript项目
问题:我怎么才能收到你们公众号平台的推送文章呢? 最近写了一个wechat-colorpicker小项目。 主要是为了练习下TS。既然写了一个小库,我就想着顺便学下如何写测试吧,这是一件蛮有意思的事情。 从选型到搭建环境,前前后后用了近2个小时。不得不说一个合格的前端必然是一个合格的配置工程师。再次列举下,这个项目中所需要搭建配置的工具。 webpack.config 自动编译ts+css tsconfig.config ts的配置文件 tslint.json tslint的配置文件 jest.config
企鹅号小编
2018/02/09
2.9K0
使用Jest测试原生TypeScript项目
使用jest进行单元测试
不扯犊子直接说吧,第一点,用数据、用茫茫多的测试用例去告诉使用者,你的程序是多么鲁棒健壮;第二点,把它作为一种素养去培养吧,当你按照一系列规范去做事,那么你做出来的东西,我想是有品质在的。
江涛学编程
2020/08/25
3.6K0
使用jest进行单元测试
使用 Jest 进行前端单元测试
目前 Jest 已经在 Facebook 开源的 React, React Native 等前端项目中被做为标配测试框架。下面简单介绍一些 Jest 比较有用的功能和用法。
QQ音乐技术团队
2018/01/31
5.6K0
使用 Jest 进行前端单元测试
【自动化测试】【Jest-Selenium】(03)—— Jest 异步测试
在JavaScript中执行异步代码是很常见的。当你有以异步方式运行的代码时,Jest 需要知道当前它测试的代码是否已完成,然后它可以转移到另一个测试。
WEBJ2EE
2020/10/09
1.4K0
【自动化测试】【Jest-Selenium】(03)—— Jest 异步测试
【自动化测试】【Jest-Selenium】(01)—— Jest 入门
按照软件工程自底而上的概念,前端测试一般分为单元测试(Unit Testing )、集成测试(Integration Testing)和端到端测试(E2E Testing)。
WEBJ2EE
2020/09/24
1.9K0
vue单元测试-Jest
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript,
顾翔
2019/12/12
1.1K0
vue单元测试-Jest
前端单元测试之Jest
关于前端单元测试的好处自不必说,基础的介绍和知识可以参考之前的博客链接:React Native单元测试。在软件的测试领域,测试主要分为:单元测试、集成测试和功能测试。
xiangzhihong
2022/11/30
2.7K0
JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件
你或许早已经知道“单元测试”“端到端测试”这些名词,但从未真正付诸实践。在这一系列实战教程中,我们将手把手带你掌握 Jest、Enzyme、Cypress 等测试利器,帮助我们从 bug 的沼泽中挣脱出来,成为一个无往不利的高阶前端开发者!
一只图雀
2020/08/26
3K0
用 Jest 进行 JavaScript 测试[每日前端夜话0xB6]
在技术术语中测试意味着检查我们的代码是否符合某些预期。例如:给定一些输入,一个名为“transformer”的函数应返回预期的输出。
疯狂的技术宅
2019/09/04
2.8K0
用 Jest 进行 JavaScript 测试[每日前端夜话0xB6]
Maven打包时跳过测试类
Maven打包时跳过测试类 在springboot项目中,默认会有Test测试类,如果执行maven打包命令,会运行测试类,而这是不必要 最简单的方法,在pom文件设置一个maven自带变量即可 <properties> <skipTests>true</skipTests> </properties>
4xx.me
2022/06/09
4350
Maven打包时跳过测试类
[ Jest ] 自动化测试 Jest 的使用总结基础篇
随着前端的发展,web的交互越来越复杂,自动化测试是非常有必要融入到开发的流程中,而目前界内普遍通用且比较火的就是有 facebook开发的 Jest 这套工具。他可以创建测试用例,执行测试,自身还有驱动和mock,且用起来也是很方便,正如 jest 的官网这样描述 jest,Jest is a delightful JavaScript Testing Framework with a focus on simplicity.
GavinUI
2021/08/23
2.8K0
[ Jest ] 自动化测试 Jest 的使用总结基础篇
初尝 Jest 单元测试
最近的几次发布都犯了小错,都是缺乏或者忽视了测试所导致的。通常来说,一个新功能上线的时候,开发和测试都投入比较多,各项测试都是比较全面的。然而,发布上线也并非意味着不再有bug或者修改。那这时候问题来
IMWeb前端团队
2017/12/29
1.8K0
初尝 Jest 单元测试
node.js测试jest入门
全局安装测试工具 jest npm install jest -g 创建hellow.js功能文件,导出功能函数 //hellow.js //功能:创建一个变量,变量值是hellow const hellow='hellow tom'; module.exports= hellow; 功能文件同级目录创建test文件夹,创建index.spec.js文件 //index.spec.js //测试文件,测试功能文件功能 test('测试 hellow.js',()=>{ const result=requ
刘嘿哈
2022/10/25
9780
【自动化测试】【Jest-Selenium】(02)—— Jest 匹配器
Use .toBe to compare primitive values or to check referential identity of object instances. It calls Object.is to compare values, which is even better for testing than === strict equality operator.
WEBJ2EE
2020/10/09
8270
Jest实战:单元测试与服务测试
一名好的大前端开发人员,一定是一名好的“配置工程师”(滑稽脸)。而最近刚到团队,被安排给 vemoJS 和 cloudbase-cli 写测试用例,并且要保证覆盖率!
心谭博客
2020/04/21
3.4K0
ES6 类的使用(class)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/107475.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/21
2260
初尝 Jest 单元测试
最近的几次发布都犯了小错,都是缺乏或者忽视了测试所导致的。通常来说,一个新功能上线的时候,开发和测试都投入比较多,各项测试都是比较全面的。然而,发布上线也并非意味着不再有bug或者修改。那这时候问题来了,有些修改, 我们会以为很简单,从而放松警惕,偷懒也罢,没有精力也罢,简单验证之后便匆匆发布了。此时,有可能不经意的改动对其它功能造成了影响,bug复bug, bug何其多呀。
IMWeb前端团队
2019/12/04
1.6K0
使用Jest测试包含setTimeout调用的函数踩坑记录
前两天给一个包含setTimeout调用的函数写单元测试,在使用fake timer的时候遇到了问题,记录一下。
雪之下Perqin
2021/08/26
7K0
react生态下jest单元测试
注意:这里我们使用cnpm去安装速度会更快,npm速度会很慢! a.建议使用npm install –g jest(不需要单个去安装依赖),修改package.json文件即可。
懿曲折扇情
2022/08/24
2.3K0
react生态下jest单元测试
点击加载更多

相似问题

Jest -测试ES6类

12

使用jest问题测试ES6类方法

16

Jest错误:调用方法时测试ES6类调用

110

模拟被测试类要使用的ES6类的Jest

13

使用Jest模拟Es6类

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文