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 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 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

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.

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