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 setup diversi. 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.
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
Testing React
Attorno a Jest sta crescendo l’ecosistema React testing: Enzyme (Airbnb) per testing component-level rimane la scelta prevalente, con alternative che emergono via via.
Concorrenti
- Mocha + Chai — storici, più configurabili e meno opinati
- AVA — concurrent, minimale
- Jasmine — più vecchio
Nel contesto italiano
Jest sta diventando la scelta standard dei team React italiani: e-commerce headless, fintech e primi progetti di PA digitale lo stanno adottando come default.
Riferimenti: Jest (Facebook, Open Source 2014). Christoph Nakazawa lead. Licenza MIT.
