前端自动化测试-Jest

2024-04-09 12:20

本文主要是介绍前端自动化测试-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('每次测试后执行')
})

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

这篇关于前端自动化测试-Jest的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888142

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

css渐变色背景|<gradient示例详解

《css渐变色背景|<gradient示例详解》CSS渐变是一种从一种颜色平滑过渡到另一种颜色的效果,可以作为元素的背景,它包括线性渐变、径向渐变和锥形渐变,本文介绍css渐变色背景|<gradien... 使用渐变色作为背景可以直接将渐China编程变色用作元素的背景,可以看做是一种特殊的背景图片。(是作为背

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5