1 Jest单元测试API
-
describe(name,fn):将一组功能相关的用例组合在一起
-
it(name,fn,timeout):用来放测试用例
-
afterAll(fn,timeout):所有测试用例跑完后执行的方法
-
beforeAll(fn,timeout):所有测试用例执行前执行的方法
-
afterEach(fn):每个测试用例后执行的方法
-
beforeEach(fn):每个测试用例执行前需要执行的方法
全局和describe函数都有以上四个周期函数,describe的after函数优先级要高于全局的after函数,describe的before函数优先级低于全局的before函数
2 jest对象
- jest.fn(implementation):返回一个没有使用过的mock函数,这个函数在被调用的时候会记录很多和函数调用有关的信息
- jest.mock(moduleName,factory,options):用来mock一些模块或文件
- jest.spyON(object,methodName):返回一个mock函数,可以进行追踪
3 常见断言
- expect(value):测试一个值
- toBe(value):使用Object.is来进行比较,如果进行浮点数比较要使用toBeCloseTo
- not:取反
- toEqual(value):用于对象的深比较
- toMatch(regexpOrString):用来检查字符串是否匹配,可以是正则表达式或字符串
- toContain(item):用来判断item是否在一个数组中,也可以用于字符串的判断
- toBeNull(value):只匹配null
- toBeUndefined(value):只匹配undefined
- toBeDefined:除了undefined都匹配
- toBeTruthy:匹配任何使if语句为真的值
- toBeFalsy:匹配任何使if语句为假的值
- toBeGreaterThan:大于
- toBeGreaterThanOrEqual:大于等于
- toBeLessThan:小于
- toBeLessThanOrEqual:小于等于
- toBeInstanceOf(class):判断是不是类的实例对象
- anything(value):匹配除了null和undefine的所有值
- resolves:用来取出promise为fulfilled时包裹的值
- rejects:用来取出promise为rejected时包裹的值
- toHaveBeenCalled:用来判断mock函数是否被调用过
- toHaveBeenCalledTimes:用来判断mock函数被调用次数
- assertions(number):验证在一个测试用例中有number个断言被调用
- extend(matchers):自定义断言