一分钟食用前端测试框架Jest

devtools/2024/11/29 4:12:01/

                                                 

安装

其实食用Jest是很简单的,我们只需要安装Jest即可

npm install --save-dev jestyarn add --dev jestpnpm add --save-dev jest

ESmodule

本身来说,Jest是不支持Esmodule的,他支持CommonJS,我们需要Babel改一下

npm i --save-dev babel-jest @babel/core @babel/preset-env

然后创建.babel.rc或babel.config.js,编写以下代码

module.exports = {// 智能预设,编译ES6语法presets: [["@babel/preset-env",{targets: {"node": "current",}}],],
};

就可以使用ESmodule语法了 

代码

然后,我们就可以编写你需要测试的代码了

例如我们自己编写一个main文件,包含几个函数,两个数的加减乘除等,然后测试看看会不会通过

const add = function (a, b) {return a + b;
}const minus = function (a, b) {return a - b;
}
const multiply = function (a, b) {return a * b
}
const divide = function (a, b) {return a / b
}export {add,minus,multiply,divide,
}

我们写了几个函数,并暴露出了相应的方法

测试

编写文件main.test.js,并编写测试代码

import {add, minus, multiply, divide} from "./main";// 测试加法
test('adds 1 + 2 to equal 3', () => {expect(add(1, 2)).toBe(3);
});// 测试减法
test('minus 2 - 1 to equal 1', () => {expect(minus(2, 1)).toBe(1);
});// 测试乘法
test('multiply 1 * 2 to equal 2', () => {expect(multiply(1, 2)).toBe(2);
});// 测试除法
test('divide 2 / 2 to equal 1', () => {expect(divide(2, 2)).toBe(1);
});

这里说明一下

test是我们的Jest 的测试函数,表明我们要测试了,接收两个参数,一个是desc(说明描述),一个是fn(回调函数)

expect是断言,意思就是,我们认为,觉得。它接收一个fn为参数

toBe是我们的匹配器,表明类似于===号的作用,带类型匹配的相等,他会拿着你的函数的结果去和toBe参数比较呢,其他的会一一解释好多的匹配器呢,请先这样看着一下

最后我们在package.json文件中,编写脚本

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

test是表明,我们进行测试

testw 是表明我们要实时监视所有的测试文件,自动运行测试,并给出结果

                                                

结果

运行脚本

npm run test

呐,并没有错误呢

错误

假如我们写一个错误呢?

这里的最后一个divide函数,我们传递的参数是2/2,tobe也就是说,我们期望结果是3,但是函数的返回值会是2/2=1,与3不匹配,所以会报错的

// 测试除法
test('divide 2 / 2 to equal 1', () => {expect(divide(2, 2)).toBe(3);
});

呐,你看,遇到红的了吧,不用急,我们只要一步一步分析,红的再多我也不怕

他的意思是,我们测试了你的最后一个,错误了,期望值是3,但是收到的测试的值却是1,所以不对

我们只需要改回来即可

                                                 

最后

Jest,其实来说,并不困难的,我会天天更新,一起学习吧,加油


http://www.ppmy.cn/devtools/137829.html

相关文章

【八股文】小米

文章目录 一、vector 和 list 的区别?二、include 双引号和尖括号的区别?三、set 的底层数据结构?四、set 和 multiset 的区别?五、map 和 unordered_map 的区别?六、虚函数和纯虚函数的区别?七、extern C …

SpringBoot源码-spring boot启动入口ruan方法主线分析(一)

一、SpringBoot启动的入口 1.当我们启动一个SpringBoot项目的时候,入口程序就是main方法,而在main方法中就执行了一个run方法。 SpringBootApplication public class StartApp {public static void main(String[] args) {// testSpringApplication.ru…

python excel接口自动化测试框架!

今天采用Excel继续写一个接口自动化测试框架。 设计流程图 这张图是我的excel接口测试框架的一些设计思路。 首先读取excel文件,得到测试信息,然后通过封装的requests方法,用unittest进行测试。 其中,接口关联的参数通过正则进…

c++ 主函数里的return 0写不写的区别是什么?

在 C 中,main 函数是程序的入口点。main 函数的标准定义如下: int main() {// ... 代码 ... } 或者可以带参数: int main(int argc, char* argv[]) {// ... 代码 ... } main 函数的返回类型是 int,这意味着它应该返回一个整数…

缓存方案分享

不知道大家平常更新缓存是怎么做的,但是大部分时候都是更新数据的同时更新缓存,今天和同事一起聊到一个缓存方案的问题,感觉很有趣、非常精妙,记录一下。 基于此本文将介绍几种常见的缓存更新策略,包括简单的缓存覆盖…

C/C++基础知识复习(31)

1) 什么是 C 中的多继承?它有哪些优缺点? 多继承(Multiple Inheritance)是指在 C 中,一个类可以继承自多个基类,从而拥有多个基类的特性和行为。具体来说,子类可以通过继承多个父类&#xff0c…

海康VsionMaster学习笔记(学习工具+思路)

一、前言 VisionMaster算法平台集成机器视觉多种算法组件,适用多种应用场景,可快速组合算法,实现对工件或被测物的查找测量与缺陷检测等。VM算法平台依托海康威视在图像领域多年的技术积淀,自带强大的视觉分析工具库,可…

简易记事本前端开发(初步)

目录 简介 1. 创建Vue3项目和导入依赖 创建Vue3项目 安装依赖 2. 登录注册页面的编写 登录页面 注册页面 3. 首页仪表盘的编写 4. 事件分类的编写 5. 事件管理的编写 结语 简介 在本篇博客中,我们将一起探索如何使用Vue3框架,结合ECharts图表…