Web Dev Tools

Testing

Unit, integration, end-to-end, component, and visual testing.

Unit / integration

  • Vitest — Vite-native, Jest-compatible API, fast. The default for new TS projects.
  • Jest — long-running standard; still huge install base. Vitest reads Jest tests with minimal changes.
  • Bun test — built into Bun; very fast for Bun projects.
  • node:test — Node's built-in runner; good for libraries that can't depend on a third-party runner.

End-to-end

  • Playwright — fastest, most reliable, multi-browser, traces, screenshots, codegen, component testing. Default for new E2E.
  • Cypress — still hugely popular; richer dev UI; some teams prefer it for component tests.
  • Puppeteer — narrower scope; mostly used for PDFs / scraping now.
  • WebdriverIO — when you need real Selenium / Appium / mobile.

Component / Storybook

  • Storybook 9 — component workshop + visual regression + interaction tests.
  • Ladle — lighter Storybook alternative built on Vite.
  • Chromatic — visual regression hosted; free tier.
  • Histoire — Vue-first Storybook alternative.

Mocking / fixtures

  • MSW (Mock Service Worker) — intercept fetch / XHR; use the same mocks in tests, dev, and Storybook.
  • Mirage JS — older alternative.
  • vitest-mock-extended, Faker.js, @anatine/zod-mock — fixture generation.

React-specific testing

  • Testing Library (@testing-library/react) — encourages user-perspective tests.
  • happy-dom / jsdom — DOM simulation under Vitest/Jest.
  • React Native Testing Library — RN equivalent.

Pick this if…

  • Unit / integration: Vitest + Testing Library.
  • E2E: Playwright.
  • Component workshop: Storybook.
  • Mocking network: MSW.
  • Visual regression: Chromatic (or Playwright traces + Argos).

On this page