前端自动化测试-Jest

前端自动化测试

Jest官网:https://jestjs.io

安装方式

npm install --save-dev jest
yarn add --dev jest
cnpm add --save-dev jest

使用方法

在这里插入图片描述
所有以 .test.js 结尾的都是测试文件

基础用法示例

num.js:

export function getSum (a, b) {return a + b
}

num.test.js:

import { getSum } from './num'test('功能', () => {expect(getSum(1, 2)).toBe(3)expect(getSum(3, 2)).toBe(5)expect(getSum(3, 4)).toBe(7)
})

运行test测试脚本后结果:
成功时:
在这里插入图片描述
报错时:

当有很多测试用例时,只想测某一个时

test.only('B 功能', () => {expect(getSum(2, 4)).toBe(6)
})

在这里插入图片描述

一些常用断言

test.only('C 功能', () => {expect(getSum(2, 4)).toBe(6) // 等于expect({ name: 'jack' }).toEqual({ name: 'jack' }) // 对象可以看到的部分是否一致expect('ababc').toMatch(/bab/) // 字符串匹配expect(4).toBeGreaterThan(3) // 大于expect(4).toBeGreaterThanOrEqual(3) // 大于等于expect(3).toBeLessThanOrEqual(5) // 小于expect(3).toBeLessThanOrEqualOrEqual(5) // 小于等于
})

方法层面的细致测试

describe('模块A', () => {test('A 功能', () => {console.log('A 功能')expect(getSum(1, 2)).toBe(3)})test('B 功能', () => {console.log('B 功能')expect(getSum(1, 2)).toBe(3)})
})
describe('模块B', () => {test('C 功能', () => {console.log('C 功能')expect(getSum(1, 2)).toBe(3)})test('D 功能', () => {console.log('D 功能')expect(getSum(1, 2)).toBe(3)})
})

在这里插入图片描述

package.json配置

在script下添加 test配置:

"scripts": {"test": "jest"}

配置Jest —— jest.config

npx jest --init

在这里插入图片描述
1.需不需要用ts生成文件
2.测试环境是什么:jsdom | node
3.是否添加覆盖率报告
4.代码覆盖采用形式:v8 | babel
5.是否需要清除每次模拟的数据

默认识别测试文件:

   testMatch: ["**/__tests__/**/*.[jt]s?(x)","**/?(*.)+(spec|test).[tj]s?(x)"],

__tests__文件夹内的js或ts 或
.spec 或 .test 的js 或ts

希望忽略的一些目录

  coveragePathIgnorePatterns: ["\\\\node_modules\\\\"],

热启动

package.json配置

"scripts": {"test": "jest --watchAll" }

关于Jest中使用babel处理es6转es5

补充相关依赖(babel-jest的套件、babel核心功能、babel运行环境):

yarn add --dev babel-jest @babel/core @babel/preset-env

配置babel.config.js

module.exports = {presets: [['@babel/preset-env',{targets: {node: 'current'}}]]
}

生命周期

beforeAll(() => {console.log('当前测试模块执行前触发')
})beforeEach(() => {console.log('每次测试前执行')
})afterAll(() => {console.log('当前测试模块执行后触发')
})afterEach(() => {console.log('每次测试后执行')
})

—————— 未完待续 ——————

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/600689.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【三十七】【算法分析与设计】STL 练习,凌波微步,栈和排序,吐泡泡,[HNOI2003]操作系统,优先队列自定义类型

凌波微步 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 时间限制:C/C 1 秒,其他语言 2 秒 空间限制:C/C 32768K,其他语言 65536K 64bit IO Format: %lld 题目描述 小 Z 的体型实在是太胖了&…

24 个Intellij IDEA好用插件

24 个Intellij IDEA好用插件 一. 安装插件 Codota 代码智能提示插件 只要打出首字母就能联想出一整条语句,这也太智能了,还显示了每条语句使用频率。 原因是它学习了我的项目代码,总结出了我的代码偏好。 Key Promoter X 快捷键提示插件 …

【随笔】Git 高级篇 -- 提交的技巧(上) rebase commit --amend(十八)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

TCP三次握手,四次挥手

TCP为什么四次挥手?而不是三次? 正常流程:服务接收到 客户端的 FIN请求后,会发送一个ACK响应,等待系统资源释放后,再发送FIN 请求给客户端,客户端再发送一个ACK响应。 若为三次:就是…

Stable Diffusion文生图技术详解:从零基础到掌握CLIP模型、Unet训练和采样器迭代

文章目录 概要Stable Diffusion 底层结构与原理文本编码器(Text Encoder)图片生成器(Image Generator) 那扩散过程发生了什么?stable diffusion 总体架构主要模块分析Unet 网络采样器迭代CLIP 模型 小结 概要 Stable …

el-date-picker禁用指定范围的日期

elementUI中el-date-picker禁用指定日期之前或之后的日期 通过配置picker-options配置指定禁用日期&#xff08;pickerOptions写到data里面&#xff09; <el-date-pickerv-model"date"type"date"size"small"value-format"yyyy-MM-dd&qu…

内网横向下的135,445与5985端口利用

LocalAccountTokenFilterPolicy 在工作组环境下横向移动时administrator账户和管理员账户下的其他用户进行远程连接时&#xff0c;会有一定的区别&#xff0c;原因就是因为LocalAccountTokenFilterPolicy&#xff0c;在Windows Vista以后的操作系统中&#xff0c;注册表中默认…

nginx到底是怎么工作的

工作流程 用户通过域名发出访问Web服务器的请求&#xff0c;该域名被DNS服务器解析为反向代理服务器的IP地址反向代理服务器接受用户的请求反向代理服务器在本地缓存中查找请求的内容&#xff0c;找到后直接把内容发送给用户如果本地缓存里没有用户所请求的信息内容&#xff0…

VMware Esxi安装群辉系统

群晖的网络存储产品具有强大的操作系统&#xff0c;提供了各种应用程序和服务&#xff0c;包括文件共享、数据备份、多媒体管理、远程访问等。用户可以通过简单直观的界面来管理他们的存储设备&#xff0c;并且可以根据自己的需求扩展设备的功能。总的来说&#xff0c;群晖的产…

【原创教程】DK系列调速电机和汇川plc通过Modbus协议通讯

点击“蓝字”关注我们吧 1、首先从说明书获取调速器驱动器参数,根据要求设置参数码(如下图所示)。 2、在COM0双击,弹出对话框COM通讯参数配置(如下图所示)。 3、协议选择MODBUS—RTU主站。H/W类型系统默认,端口号默认,通讯速率、数据长度、奇偶校验位、停止位根据调速…

pom.xml文件中的标签认识

周末不卷&#xff0c;研究下pom.xml里的内容。 一般一个pom.xml文件外面一个project包着以下的标签&#xff1a; groupId artifactId repositories properties dependencies build plugins 下面分别来说说这几个标签的含义&#xff1a; 1、groupId&#xff1a;表示项目组的id…

387XX固态功率放大器系列 分频段可实现9kHz~110GHz

387XX固态功率放大器系列 分频段可实现9kHz&#xff5e;110GHz 387XX固态功率放大器系列分频段可实现9kHz&#xff5e;110GHz的频率范围内输入信号的功率放大。具有增益可调、功率稳幅及远程控制等功能。宽频带、高增益及大功率是它的特点。 简述 387XX固态功率放大器系列由…