Les proves de codi són una part essencial del desenvolupament de programari, ja que asseguren que el codi funcioni com s'espera i ajuden a detectar errors abans que arribin a producció. En aquest tema, aprendrem com escriure i executar proves per a codi TypeScript utilitzant eines populars com Jest i Mocha.
Continguts
- Introducció a les Proves de Codi
- Configuració de l'Entorn de Proves
- Escriptura de Proves amb Jest
- Escriptura de Proves amb Mocha
- Proves de Tipus amb
ts-jest
- Exercicis Pràctics
- Introducció a les Proves de Codi
Les proves de codi es poden classificar en diverses categories:
- Proves Unitàries: Verifiquen la funcionalitat d'unitats individuals de codi, com ara funcions o mètodes.
- Proves d'Integració: Verifiquen la interacció entre diferents unitats de codi.
- Proves de Sistema: Verifiquen el sistema complet en un entorn que simula la producció.
- Configuració de l'Entorn de Proves
Instal·lació de Jest
Jest és un marc de proves popular per a JavaScript i TypeScript. Per instal·lar-lo, executa les següents comandes:
Configuració de Jest
Crea un fitxer de configuració jest.config.js
a l'arrel del teu projecte:
module.exports = { preset: 'ts-jest', testEnvironment: 'node', testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'], };
- Escriptura de Proves amb Jest
Exemple de Prova Unitària
Crea un fitxer sum.ts
amb la següent funció:
Ara, crea un fitxer de prova sum.test.ts
:
Executar les Proves
Per executar les proves, afegeix el següent script al teu package.json
:
Després, executa:
- Escriptura de Proves amb Mocha
Instal·lació de Mocha i Chai
Mocha és un altre marc de proves popular, sovint utilitzat amb Chai per a les assercions. Per instal·lar-los, executa:
Configuració de Mocha
Crea un fitxer de configuració mocha.opts
a la carpeta test
:
Exemple de Prova Unitària amb Mocha
Crea un fitxer sum.ts
amb la mateixa funció:
Ara, crea un fitxer de prova sum.test.ts
:
import { expect } from 'chai'; import { sum } from './sum'; describe('sum function', () => { it('should add 1 + 2 to equal 3', () => { expect(sum(1, 2)).to.equal(3); }); });
Executar les Proves
Afegeix el següent script al teu package.json
:
Després, executa:
- Proves de Tipus amb
ts-jest
ts-jest
ts-jest
és un preconfigurador per a Jest que permet utilitzar TypeScript directament en les proves. Ja hem configurat ts-jest
en la secció anterior, així que només cal escriure les proves com ho faríem normalment amb Jest.
- Exercicis Pràctics
Exercici 1: Prova d'una Funció de Multiplicació
- Crea una funció
multiply
que multipliqui dos nombres. - Escriu una prova unitària per a la funció
multiply
utilitzant Jest.
Solució
multiply.ts:
multiply.test.ts:
import { multiply } from './multiply'; test('multiplies 2 * 3 to equal 6', () => { expect(multiply(2, 3)).toBe(6); });
Exercici 2: Prova d'una Funció de Divisió amb Mocha
- Crea una funció
divide
que divideixi dos nombres. - Escriu una prova unitària per a la funció
divide
utilitzant Mocha i Chai.
Solució
divide.ts:
export function divide(a: number, b: number): number { if (b === 0) { throw new Error('Cannot divide by zero'); } return a / b; }
divide.test.ts:
import { expect } from 'chai'; import { divide } from './divide'; describe('divide function', () => { it('should divide 6 by 3 to equal 2', () => { expect(divide(6, 3)).to.equal(2); }); it('should throw an error when dividing by zero', () => { expect(() => divide(6, 0)).to.throw('Cannot divide by zero'); }); });
Conclusió
En aquesta secció, hem après com configurar i escriure proves per a codi TypeScript utilitzant Jest i Mocha. Les proves de codi són crucials per assegurar la qualitat del programari i detectar errors de manera primerenca. Amb les eines i exemples proporcionats, ara estàs preparat per començar a escriure les teves pròpies proves i millorar la robustesa del teu codi TypeScript.
Curs de TypeScript
Mòdul 1: Introducció a TypeScript
- Què és TypeScript?
- Configuració de l'entorn de TypeScript
- Tipus bàsics
- Anotacions de tipus
- Compilació de TypeScript
Mòdul 2: Treballant amb Tipus
Mòdul 3: Tipus Avançats
Mòdul 4: Funcions i Mòduls
- Tipus de Funció
- Paràmetres Opcional i per Defecte
- Paràmetres Rest
- Mòduls i Espais de Noms
- Decoradors
Mòdul 5: Programació Asíncrona
Mòdul 6: Eines i Millors Pràctiques
- Linting i Formatació
- Proves de Codi TypeScript
- TypeScript amb Webpack
- TypeScript amb React
- Millors Pràctiques