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测试相反的东西.resolvespromise resolve 时expect(Promise.resolve('lemon')).resolves.toBe('lemon')
.rejectspromise 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和undefinedexpect.arrayContaining(array)期望的数组是接收到的数组的子集expect.assertions(number)在测试期间是否调用了一定数量的断言expect.hasAssertions()在测试期间至少调用了一个断言expect.not.arrayContaining(array)期望的数组不是接收到的数组的子集expect.objectContainingexpect.not.objectContaining(object)预期对象不是所接收对象的子集expect.not.objectContaining(object)expect.not.stringContaining(string)如果它不是字符串,或者是不包含确切预期字符串的字符串,则匹配接收到的值expect.stringContainingexpect.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 自动监听并重新测试