jest单元测试
global
afterAll(fn, timeout)
该文件中的所有测试完成后,运行一个函数;timeout:中止之前要等待的时间afterEach(fn, timeout)
该文件中的每个测试完成后,运行一个函数beforeAll(fn, timeout)
运行此文件中的任何测试之前,运行一个函数beforeEach(fn, timeout)
运行此文件中的每个测试之前运行一个函数describe(name, fn)
创建一个将几个相关测试组合在一起的模块可嵌套
describe.skip(name, fn)
不想运行特定的 describe 块test(name, fn, timeout)
运行测试的方法同it(name, fn, timeout)
test.todo(name)
编写待测试的项目test.only(name, fn, timeout)
指定测试是您要在该测试文件中运行的唯一测试test.skip(name, fn)
跳过运行此测试
expext
expect(value)
每次测试都会使用.not
测试相反的东西.resolves
promise resolve 时expect(Promise.resolve('lemon')).resolves.toBe('lemon')
.rejects
promise reject 时.toBe(value)
Object.is 比较两个值是否相等(不建议比较浮点数)浮点数使用
.toBeCloseTo(value)
.toBeDefined()
定义.toBeUndefined()
未定义toBeFalsy()
是否为假toBeTruthy
是否为真toBeNull()
只匹配null
.toBeNaN()
匹配 NaN.toBeGreaterThan(number)
大于.toBeGreaterThanOrEqual(number)
大于等于.toBeLessThan(number)
小于.toBeLessThanOrEqual(number)
小于等于.toBeInstanceOf(Class)
是某个类的实例.toContain(item)
数组是否包含 item.toContainEqual(item)
对象中是否包含 item 对象中每个键值.toEqual(value)
递归比较对象所有属性(使用Object.is
).toStrictEqual(value)
严格相等.toMatch(regexpOrString)
检查字符串中的正则表达式匹配.toMatchObject(object)
检查 JavaScript 对象对象的属性的子集相匹配.toThrow(error?)
测试是否抛出了错误注意:您必须将代码包装在函数中,否则将不会捕获错误,并且断言将失败。
expect.extend(matchers)
自定义断言(支持异步)expect.anything()
匹配任何值除了null
和undefined
expect.arrayContaining(array)
期望的数组是接收到的数组的子集expect.assertions(number)
在测试期间是否调用了一定数量的断言expect.hasAssertions()
在测试期间至少调用了一个断言expect.not.arrayContaining(array)
期望的数组不是接收到的数组的子集expect.objectContaining
expect.not.objectContaining(object)
预期对象不是所接收对象的子集expect.not.objectContaining(object)
expect.not.stringContaining(string)
如果它不是字符串,或者是不包含确切预期字符串的字符串,则匹配接收到的值expect.stringContaining
expect.not.stringMatching(string | regexp)
如果它不是字符串,或者是与预期字符串或正则表达式不匹配的字符串,则匹配接收到的值
jest 对象
Mock Modules
jest.disableAutomock()
在模块加载器中禁用自动模拟。jest.enableAutomock()
在模块加载器中启用自动模拟。jest.genMockFromModule(moduleName)
给定模块名称的情况下,请使用自动模拟系统为您生成模块的模拟版本。jest.mock(moduleName, factory, options)
mock functions
- jest.fn(implementation)`
jest.spyOn(object, methodName)
mock function
所有模拟函数都具有.mock
属性,该属性用于保存有关如何调用函数以及返回的函数的数据
测试异步代码
回调
使用参数 done,jest 将等到done
回调被调用后再完成测试
promise
Async/await
注意
toBe 比较的基本是原是类型,对象(引用类型)使用 toEqual
Jest cli 命令
jest --watchAll 自动监听并重新测试