Jest 测试框架速查表
Jest 是 Facebook 出品的 JavaScript 测试框架,零配置开箱即用。整理常用 API,快速编写测试。
返回 编程语言基础测试 5
test("adds 1+2 to equal 3", () => {\n expect(1 + 2).toBe(3)\n})基本测试用例
expect(value).toBe(expected)严格相等(Object.is)
expect(value).toEqual({ a: 1 })深度相等
expect(value).toBeTruthy()真值判断
expect(fn).toThrow("error")异常捕获
Mock 函数 6
const mockFn = jest.fn()创建 Mock 函数
mockFn.mockReturnValue(42)设置返回值
mockFn.mockImplementation(() => 42)设置实现
expect(mockFn).toHaveBeenCalled()验证是否被调用
expect(mockFn).toHaveBeenCalledWith(arg)验证调用参数
jest.mock("./module")Mock 整个模块
异步测试 3
test("async", async () => {\n const data = await fetchData()\n expect(data).toBe("result")\n})async/await 测试
test("promise", () => {\n return fetchData().then(data => expect(data).toBe("result"))\n})Promise 测试
jest.useFakeTimers()使用假定时器
生命周期与分组 5
beforeEach(() => { /* setup */ })每个测试前执行
afterEach(() => { /* cleanup */ })每个测试后执行
describe("group", () => { test(...) })测试分组
test.skip("skipped", () => {})跳过测试
test.only("focused", () => {})只运行此测试
💡 提示
- jest --coverage 生成覆盖率报告,--watch 开启监听模式。
- jest.mock() 会自动 Mock 模块的所有导出,返回 jest.fn()。
- toMatchSnapshot() 可以创建快照测试,适合 UI 组件测试。
- jest.spyOn(obj, "method") 可以 spy 对象方法而不完全 Mock。