前端自动化测试框架Jest介绍和使用

2387 篇文章 33 订阅
1785 篇文章 17 订阅

在实际项目的自动化测试过程中,如果只有这两个方法,很显然,是远远不够的,这时候,就需要我们对之前的方法进行扩充,同时还有很多自动化的机制需要集成进去。这时候 Jest 闪亮登场!

Jest 框架介绍

一个优秀的自动化测试框架,在以下三个方面应该比较突出:

  • 性能好
  • 功能齐全
  • 易用性很好

Jest 在这三个方面做的非常好(当然了,像Jasmine、mocha这些主流前端测试框架做的也不错)。

这些主流前端测试框架使用的方法、原理上都差不多,实际上,我们学会了一个,另外几个也就很容易的继续学习了,所以这篇文章只讲解 Jest。

那么 Jest 具体好用在哪些方面呢?

答案是这些:

  • 速度快(可以自动监测修改过的代码,不会重复测试)

  • API 简单、数量少

  • 易配置

  • 隔离性好

  • 监控模式

  • IDE 整合(比如vs code)

  • Snapshot(快照测试)

  • 多项目并行

  • 覆盖率

  • Mock 丰富

  • 对新技术支持度好

使用Jest修改自动化测试样例

在上面的部分,我们自己写了一些测试代码对 Math 库进行了测试,现在我们要使用 Jest 对 Math 进行重新测试。

首先打开编辑器,进入到控制台(为了避免不必要的麻烦,建议大家跟我一样使用vs code)。

第1步:初始化npm环境

npm init

在执行命令的时候会遇到一些选项或者问题,无脑按回车即可,如果看到目录下出现了一个 package.json 文件,那么这就是一个标准的 npm 包了。

第2步:安装依赖

npm install jest -D

注:-D 是 --save -dev 的缩写。

如果看到 Jest 出现在了 package.json 文件中,并且目录中出现了 node_modules 文件夹,就说明安装成功了。

第3步:修改之前的代码

首先删除之前写的 test 方法 和 expect 方法 的实现过程,因为 Jest 自带了这两个方法,我们不需要手动实现。然后采用模块化的标准,将 math.js 中的方法导出:

// math.js

function add(a, b) {
  return a + b;
}

function minus(a, b) {
  return a - b;
}

function multi(a, b) {
  return a * b;
}

module.exports = { add, minus, multi };

然后在 math.test.js 文件中引入这几个方法:

// math.test.js

const { add, minus, multi } = require("./math");

test("测试加法 3 + 3", () => {
  expect(add(3, 3)).toBe(6);
});

test("测试减法 3 - 3", () => {
  expect(minus(3, 3)).toBe(0);
});

test("测试乘法 3 * 3", () => {
  expect(multi(3, 3)).toBe(9);
});

第4步:配置 package.json 文件

将如下代码添加到 package.json 中:

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

第5步:执行测试代码

完成配置之后,运行 yarn test 或者 npm run test ,控制台将输出如下信息:

在这里插入图片描述

假设这个时候,我们把第三个测试用例的结果改成错误值:

// math.test.js

const { add, minus, multi } = require("./math");

test("测试加法 3 + 3", () => {
  expect(add(3, 3)).toBe(6);
});

test("测试减法 3 - 3", () => {
  expect(minus(3, 3)).toBe(0);
});

test("测试乘法 3 * 3", () => {
  expect(multi(3, 3)).toBe(10); // 错误的结果
});

重新运行 yarn test 或者 npm run test,可以看到如下结果:

在这里插入图片描述

可以看到,控制台报出了错误:乘法测试没有通过,期待值(Expected)是10,但是返回值是(Received)9。

然后我们再把测试结果改成正确的值,重新执行命令行,就能得到正确的测试结果了。

这个时候,说明Jest 这个框架已经被我们正确的使用了。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值