ConfigsApr 12, 2026·1 min read

Jest — Delightful JavaScript Testing Framework

Jest is a delightful JavaScript testing framework with a focus on simplicity. Zero-config for most JS/TS projects, snapshot testing, mocking, code coverage, and parallel test execution. Created by Facebook and used to test React, Instagram, and many large codebases.

AI
AI Open Source · Community
Quick Use

Use it first, then decide how deep to go

This block should tell both the user and the agent what to copy, install, and apply first.

npm i -D jest @types/jest ts-jest
# Or for TypeScript projects
npx ts-jest config:init
// sum.ts
export function sum(a: number, b: number): number {
  return a + b;
}

// sum.test.ts
import { sum } from "./sum";

describe("sum", () => {
  test("adds 1 + 2 to equal 3", () => {
    expect(sum(1, 2)).toBe(3);
  });

  test("handles negative numbers", () => {
    expect(sum(-1, -2)).toBe(-3);
  });
});
npx jest                     # Run all tests
npx jest --watch             # Watch mode
npx jest --coverage          # With coverage report
Intro

Jest is a delightful JavaScript testing framework created by Facebook (now Meta). Zero-config for most React and TypeScript projects. Features include snapshot testing, built-in mocking, code coverage, parallel execution, and an intuitive API. Used to test React, Instagram, and many Meta properties.

What Jest Does

  • Zero-config — works out of the box for most JS/TS projects
  • Snapshot testing — capture and compare UI output
  • Mockingjest.fn(), jest.mock(), jest.spyOn()
  • Code coverage — built-in Istanbul coverage
  • Parallel execution — tests run in isolated workers
  • Watch mode — re-run changed tests
  • Matchers — rich assertion library (toBe, toEqual, toThrow, toMatchSnapshot)
  • Timer mocks — fake timers for setTimeout/setInterval
  • Async testing — async/await, promises, callbacks

Comparison

Runner Speed TS ESM Watch
Jest Medium Via ts-jest Experimental Yes
Vitest Fast Native Native Yes
Mocha Medium Via ts-node Yes Yes
Node test runner Fast Via tsx Yes Yes

常见问题 FAQ

Q: Jest vs Vitest? A: Vitest 更快(Vite 驱动)、ESM 原生、TS 无需 ts-jest。新 Vite 项目推荐 Vitest。Jest 生态更大、存量项目更多。

Q: TypeScript 怎么配? A: 用 ts-jest 转换器或 @swc/jest(更快)。配置 jest.config.tstransform 字段。

来源与致谢 Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets