TypeScript:
Skriva tester

Hur man gör:

TypeScript fungerar harmoniskt med de flesta JavaScript-testningsramverk. För demonstrationsändamål kommer vi att använda Jest, ett populärt testningsramverk, på grund av dess konfigurationsfria uppsättning för TypeScript-projekt.

Först, se till att du har installerat Jest och de nödvändiga TypeScript-typerna:

npm install --save-dev jest typescript ts-jest @types/jest

Nästa steg, sätt upp Jest för att arbeta med TypeScript genom att modifiera jest.config.js eller om du skapar en ny:

module.exports = {
  preset: 'ts-jest',
  testEnvironment: 'node',
};

Nu ska vi skriva en enkel funktion och ett test för den. Betrakta en sum.ts fil med följande funktion:

// sum.ts
export function sum(a: number, b: number): number {
  return a + b;
}

Skapa en testfil som heter sum.test.ts:

// sum.test.ts
import { sum } from './sum';

test('lägger till 1 + 2 för att bli 3', () => {
  expect(sum(1, 2)).toBe(3);
});

Kör dina tester med:

npx jest

Exempel på utdata som indikerar ett godkänt test kan se ut ungefär så här:

 PASS  ./sum.test.ts
  ✓ lägger till 1 + 2 för att bli 3 (2 ms)

För asynkron kod hanterar Jest detta med async/await. Anta att du har en asynkron fetchData funktion:

// asyncFunctions.ts
export async function fetchData(): Promise<string> {
  return "data";
}

Ditt test som använder asynkrona funktioner:

// asyncFunctions.test.ts
import { fetchData } from './asyncFunctions';

test('hämtar data framgångsrikt', async () => {
  expect(await fetchData()).toBe('data');
});

När du kör dina tester kommer Jest att vänta på att löftet uppfylls, och korrekt testar asynkrona operationer.

Kom ihåg, effektiv testning innefattar att skriva flera tester för olika scenarion, inklusive gränsfall, för att säkerställa att din TypeScript-kod fungerar som förväntat.