Jest: framework di testing JavaScript con zero configurazione

Jest (agosto 2014, Facebook, stabilizzato dopo 2016): framework di testing JavaScript/TypeScript con zero config, snapshot testing, mocking integrato, watch mode. Standard React e base di Vitest.

Open SourceWeb JestFacebookMetaTestingJavaScriptReactOpen SourceWeb

Un framework per React

Facebook sviluppa internamente Jest per testare le proprie codebase JavaScript — React incluso. Prima di Jest il testing Node è frammentato: Mocha + Chai + Sinon, Jasmine, AVA, Tape ciascuno con sintassi e assembly diverso. Configurare e far girare serve molto setup.

Il rilascio

Jest viene open-sourced da Facebook nel 2014; la versione 14.0 (maggio 2016) e 16.0 (settembre 2016) segnano la trasformazione in framework di massa con l’adozione da parte di Create React App. Main author: Christoph Nakazawa. Licenza MIT. Dal 2022 mantenuto da Meta ma donato a OpenJS Foundation.

test('sum adds numbers', () => {
  expect(sum(1, 2)).toBe(3);
});

test('user snapshot', () => {
  expect(renderUser()).toMatchSnapshot();
});

Caratteristiche

  • Zero config — funziona out-of-box con ES modules, JSX, TypeScript (via babel-jest)
  • Assertion library integrataexpect() con matcher .toBe(), .toEqual(), .toMatch(), .toThrow()
  • Mocking built-injest.fn(), jest.mock() per moduli
  • Snapshot testing — serializza output e confronta su successivi run
  • Parallel execution — worker pool per test paralleli
  • Code coverage — Istanbul integrato con --coverage
  • Watch mode — interattivo, riesegue solo test interessati
  • jsdom environment integrato per test DOM

React Testing Library

Nel 2018 Kent C. Dodds rilascia @testing-library/react, che sostituisce il più basso livello Enzyme (Airbnb). Combinazione Jest + React Testing Library è lo standard di fatto per testing React dal 2019.

Concorrenti

  • Mocha + Chai — storici, più configurabili e meno opinati
  • AVA — concurrent, minimale
  • Jasmine — più vecchio
  • Vitest (2021, nato con Vite) — API Jest-compatibile, velocissimo, ESM-first; sta sostituendo Jest in molti nuovi progetti
  • Node Test Runner (Node 20+) — built-in, minimo
  • Bun test — ultra-veloce

Nel contesto italiano

Jest è stato standard de facto dei team React italiani dal 2018. Usato in:

  • E-commerce italiani headless (Magento, Shopify storefront)
  • Fintech — web app crypto, neobank
  • PA digitale — progetti PagoPA, App IO, Design System Italia
  • SaaS B2B

Dal 2023 c’è transizione progressiva verso Vitest nei nuovi progetti Vite-based.


Riferimenti: Jest (Facebook, open source 2014). Christoph Nakazawa lead. Licenza MIT. Donato a OpenJS Foundation (2022). React Testing Library (Kent C. Dodds, 2018) standard di test React. Vitest (2021) sostituto Jest-compatible.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi