toThrow
: 匹配是否抛出了错误,传参的话匹配是否抛出指定错误类型/错误描述
注意:函数需要在expect的包装函数中调用,否则 toThrow断言总是会失败
test('test--',()=>{ let a = 2 expect(a).toBe(2) //测试用例通过})expect (2)返回一个预期的对象toBe: 使用 Object.is来进行精准匹配的测试toEqual: 检查对象的值,递归检查对象或数组的每个字段可以使用.not 测试相反的匹配test('test--',()=>{ let a = 2 expect(a).not.toBe(3) //测试用例通过})真值匹配器toBeNu
最简单的测试值的方法就是看是否精确匹配。首先是toBe()
test('two plus two is four', () => {
expect(2 + 2).toBe(4);
复制代码toBe用的是JavaScript中的Object.is(),属于ES6中的特性,所以不能检测...
Jest 测试
什么是测试
作为开发来讲可以简单把代码分为两种,一种是业务代码,一种是业务无关的代码。测试代码就是典型的业务无关的代码。不过按照我的定义可以把测试代码定位为:可以保证业务代码是否能够按照预期运行的代码。有些人会把这个叫做 TDD,但是TDD(Test-Driven Development or Test-Driven Design)只是开发的一种思路或者说是习惯,先写测试用例,然后实现业务逻辑。
坦白讲,作为实用主义的程序员,先写测试用例还是后写测试用例或是不写测试,
1.1 最新版本的jest安装需要babel 7.X
npm install babel-jest jest --save-dev
1.2 babel 6.X的可安装以下版本或者升级babel
npm install babel-jest@23.6.0 jest@23.6.0 --save-dev
1.3 jest不支持import语法 要安装
npm install babel-plugin-transform-es2015-modules-commonjs --save-dev
配置packge.
Jest测试生成器已经是相当成熟了,Mocha相比各有优势,对于初学者来说,建议选用Jest,在项目中引用Jest,配置相当简单。
但是Jest官方文档里的断言类型实在太多了,罗列出来常用的几种断言类型,供大家参考,如果想要看全集,请移步到Jest官网。
not: 类似于 ! 取反
expect(2).not.toBe(1)
toBe:类似 ===
expect(1).toBe(1)
toEqual:基本用来,匹配对象是否相等
expect({ one: 1 }).toEqual({ one:
在编写测试时,我们通常需要检查值是否满足某些条件,Jest中提供的expect允许你访问很多“Matchers”,这些“匹配器”允许您验证不同的东西。
Expect 可以验证什么
Jest中提供了如下的验证方法:
expect(value)
expect.extend(matchers)
expect.anything()
expect.any(construc...
`jest-matcher-utils` 是一个 Jest 匹配器工具库,用于编写自定义 Jest 匹配器。
该工具库提供了一些实用的函数和类,可用于开发和扩展 Jest 的匹配器功能。一些常用的功能包括:
- 生成 diff:可以通过 `diff` 函数生成两个值之间的差异文本。
- 格式化对象:可以使用 `printReceived` 和 `printExpected` 函数将对象格式化为字符串,并在错误消息中使用这些字符串。
- 色彩化输出:可以使用 `highlight` 函数将文本高亮显示,以增强可读性。
- 提示建议:可以使用 `pluralize` 函数将单词的复数形式转换为正确的形式。
使用 `jest-matcher-utils` 可以方便地扩展 Jest 的匹配器功能,提供更好的错误消息和可读性。