TypeScript:
Scrivere test
Come fare:
TypeScript funziona in armonia con la maggior parte dei framework di test JavaScript. A scopo dimostrativo, useremo Jest, un framework di test popolare, grazie alla sua configurazione zero per i progetti TypeScript.
Prima di tutto, assicurati di avere Jest e i tipi TypeScript necessari installati:
npm install --save-dev jest typescript ts-jest @types/jest
Successivamente, configura Jest per lavorare con TypeScript modificando il file jest.config.js
o creandone uno nuovo:
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node',
};
Ora, scriviamo una semplice funzione e un test per essa. Considera un file sum.ts
con la seguente funzione:
// sum.ts
export function sum(a: number, b: number): number {
return a + b;
}
Crea un file di test chiamato sum.test.ts
:
// sum.test.ts
import { sum } from './sum';
test('somma 1 + 2 uguale a 3', () => {
expect(sum(1, 2)).toBe(3);
});
Esegui i tuoi test con:
npx jest
Un esempio di output per un test superato dovrebbe apparire così:
PASS ./sum.test.ts
✓ somma 1 + 2 uguale a 3 (2 ms)
Per il codice asincrono, Jest si accomoda con async/await
. Supponiamo di avere una funzione asincrona fetchData
:
// asyncFunctions.ts
export async function fetchData(): Promise<string> {
return "data";
}
Il tuo test usando funzioni asincrone:
// asyncFunctions.test.ts
import { fetchData } from './asyncFunctions';
test('recupera dati con successo', async () => {
expect(await fetchData()).toBe('data');
});
Quando esegui i tuoi test, Jest attende che la promise sia risolta, testando correttamente le operazioni asincrone.
Ricorda, un test effettivo include la scrittura di più test per diversi scenari, inclusi i casi limite, per garantire che il tuo codice TypeScript si comporti come previsto.