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-jestts-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ó
multiplyque multipliqui dos nombres. - Escriu una prova unitària per a la funció
multiplyutilitzant 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ó
divideque divideixi dos nombres. - Escriu una prova unitària per a la funció
divideutilitzant 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
