Open yyman001 opened 6 years ago
为编写的功能代码提供可靠的测试,覆盖测试,确保模块功能可靠.
yarn add --dev jest // or npm install --save-dev jest
一般存放于test或__test__目录下,文件名规范*.test.js
test
__test__
*.test.js
一般使用方法,新建`test`方法,第一个参数为`测试方法描述`,第二个参数为回调函数(可传入done参数-一般异步回调使用)
// 一般使用 test('描述',(=>{ // 断言表达式 expect(需要校验的函数或表达式).断言类型 }))
那么能否划分区块? 当然,可使用`describe`方法,
// 使用 describe 进行块划分 describe('测试模块名描述', ()=>{ // 一些 test 方法 test()... })
// demo.test.js test('adds 1 + 2 to equal 3', () => { expect(1 + 2).toBe(3); });
断言用来对我们数据的预估盼望,例如 盼望 1 + 1 = 2, 就可以使用断言语法 expect(1 + 1), 表达式, 盼望结果? toBe(2),就可以了. 我们把它们按照各种类型分类会比较好,因为这个断言函数实在是太多,想要细分几个我们常用的数据类型就好.
1 + 1 = 2
expect(1 + 1)
toBe(2)
toBeNull(value):只匹配null toBeUndefined(value):只匹配undefined toBeDefined(value):与toBeUndefined相反 (判断变量是否已经定义非 undefined 值) toBeTruthy(value):匹配任何使if语句为真的值 toBeFalsy(value):匹配任何使if语句为假的值
null
undefined
真
假
toEqual(value):用于对象的深比较(对象值是否全部相等) toBeInstanceOf(class):判断是不是class的实例
toMatch(regexpOrString):用来检查字符串是否匹配,可以是正则表达式或者字符串 toContain(item):用来判断item是否在一个数组中,也可以用于字符串的判断
toBeGreaterThan(number): 大于 toBeGreaterThanOrEqual(number):大于等于 toBeLessThan(number):小于 toBeLessThanOrEqual(number):小于等于
resolves:用来取出promise为fulfilled时包裹的值,支持链式调用 rejects:用来取出promise为rejected时包裹的值,支持链式调用 toHaveBeenCalled():用来判断mock function是否被调用过 toHaveBeenCalledTimes(number):用来判断mock function被调用的次数
这个比较高级,可以自己写断言函数,当官网给的断言无法满足自身需求的时候用上的高级功能. extend(matchers):自定义一些断言
测试单元
前言
安装/配置
注意命名
一般存放于
test
或__test__
目录下,文件名规范*.test.js
组成结构
简单示例
常用断言
断言用来对我们数据的预估盼望,例如 盼望
1 + 1 = 2
, 就可以使用断言语法expect(1 + 1)
, 表达式, 盼望结果?toBe(2)
,就可以了. 我们把它们按照各种类型分类会比较好,因为这个断言函数实在是太多,想要细分几个我们常用的数据类型就好.常用断言
基本数据类型判断
toBeNull(value):只匹配
null
toBeUndefined(value):只匹配undefined
toBeDefined(value):与toBeUndefined相反 (判断变量是否已经定义非 undefined 值) toBeTruthy(value):匹配任何使if语句为真
的值 toBeFalsy(value):匹配任何使if语句为假
的值判断对象
toEqual(value):用于对象的深比较(对象值是否全部相等) toBeInstanceOf(class):判断是不是class的实例
判断字符串
toMatch(regexpOrString):用来检查字符串是否匹配,可以是正则表达式或者字符串 toContain(item):用来判断item是否在一个数组中,也可以用于字符串的判断
判断数值
toBeGreaterThan(number): 大于 toBeGreaterThanOrEqual(number):大于等于 toBeLessThan(number):小于 toBeLessThanOrEqual(number):小于等于
函数
resolves:用来取出promise为fulfilled时包裹的值,支持链式调用 rejects:用来取出promise为rejected时包裹的值,支持链式调用 toHaveBeenCalled():用来判断mock function是否被调用过 toHaveBeenCalledTimes(number):用来判断mock function被调用的次数
高级自定义断言
这个比较高级,可以自己写断言函数,当官网给的断言无法满足自身需求的时候用上的高级功能. extend(matchers):自定义一些断言
参考资料