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 integrata —
expect()con matcher.toBe(),.toEqual(),.toMatch(),.toThrow() - Mocking built-in —
jest.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.
