前端自动化测试jest教程2-匹配器matchers

在这里插入图片描述

准备条件

以第1节教程的创建的目录和代码为基础进行讲解。如果没有看过第1节教程,请关注我,查看以往该系列的文章
在讲匹配器之前,我们先来将上节中index.test.js中基础代码讲解一下

import { sum } from './index'
test('测试 sum', () => {
  expect(sum(1, 2)).toBe(3)
})
  • test方法我们称做测试用例,接收两个参数,第一个参数是测试的名称,第二个参数是个函数,在函数内可以写一些测试逻辑
  • expect顾名思义就是期望的意思,expect(sum(1, 2)).toBe(3)意思就是期望这个sum(1, 2)的返回值和3相等,整体称做为断言
  • toBe就是一个匹配器,匹配expect的值是否和匹配器中的值相等,也就是我们今天要讲的主题

既然了解我们之前写的代码的意思了,我们就开始今天的主题 匹配器,这些匹配器可以复制到index.test.js进行测试

为了不用每次都启用命令npm run test,可以在package.json中的test命令加上–watchAll,这样文件更改就可以自动重新测试

.toBe(value):匹配值,相当于===

const can = {
  name: 'pamplemousse'
};

test('has a sophisticated name', () => {
  expect(can.name).toBe('pamplemousse');
});

注意点:

  • 不能用于测试浮点数比如expect(0.1+0.2).toBe(0.3),如果需要这样测试,可以使用toBeCloseTo
  • 不能用于引用类型的检查

.toEqual(value):匹配值,只匹配内容不匹配引用,可以用于引用类型的匹配

const can1 = {
  flavor: 'grapefruit',
  ounces: 12,
};

const can2 = {
  flavor: 'grapefruit',
  ounces: 12,
};

test('have all the same properties', () => {
  expect(can1).toEqual(can2);
});

注意点:

  • 不能用于两个抛出异常的匹配

.toBeNull():匹配null

function bloop() {
  return null;
}

test('bloop returns null', () => {
  expect(bloop()).toBeNull();
});

注意点:

  • .toBeNull()和.toBe(null)的作用是一样的

.toBeUndefined():匹配undefined

test('test undefined', () => {
  let name
  let age = undefined
  expect(name).toBeUndefined()
  expect(age).toBeUndefined()
})

注意点:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值