TypeScript:
Pisanie testów

Jak to zrobić:

TypeScript doskonale współpracuje z większością frameworków do testowania JavaScript. Dla celów demonstracyjnych użyjemy Jest, popularnego frameworka testowego, ze względu na jego konfigurację zerową dla projektów TypeScript.

Najpierw upewnij się, że masz zainstalowany Jest oraz niezbędne typy TypeScript:

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

Następnie, skonfiguruj Jest do pracy z TypeScript poprzez modyfikację pliku jest.config.js lub jeśli tworzysz nowy:

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

Teraz, napiszmy prostą funkcję i test do niej. Rozważ plik sum.ts z następującą funkcją:

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

Stwórz plik testowy o nazwie sum.test.ts:

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

test('dodaje 1 + 2, aby uzyskać 3', () => {
  expect(sum(1, 2)).toBe(3);
});

Uruchom swoje testy za pomocą:

npx jest

Przykładowe wyniki wskazujące na zaliczony test powinny wyglądać mniej więcej tak:

 PASS  ./sum.test.ts
  ✓ dodaje 1 + 2, aby uzyskać 3 (2 ms)

Dla kodu asynchronicznego, Jest obsługuje async/await. Załóżmy, że masz asynchroniczną funkcję fetchData:

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

Twój test używający funkcji asynchronicznych:

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

test('pobiera dane z powodzeniem', async () => {
  expect(await fetchData()).toBe('data');
});

Uruchamiając swoje testy, Jest będzie czekał na rozwiązanie obietnicy, poprawnie testując operacje asynchroniczne.

Pamiętaj, skuteczne testowanie obejmuje pisanie wielu testów dla różnych scenariuszy, w tym przypadków brzegowych, aby upewnić się, że Twój kod TypeScript działa zgodnie z oczekiwaniami.