TypeScript:
Письмо тестів

Як це зробити:

TypeScript гармонійно працює з більшістю фреймворків для тестування JavaScript. Для наочності ми використаємо Jest, популярний фреймворк для тестування, через його налаштування без конфігурації для проектів TypeScript.

Спочатку переконайтеся, що у вас встановлені Jest та необхідні типи TypeScript:

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

Далі, налаштуйте Jest для роботи з TypeScript, змінивши jest.config.js або створивши новий:

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

Тепер давайте напишемо просту функцію та тест для неї. Розглянемо файл sum.ts з наступною функцією:

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

Створіть тестовий файл під назвою sum.test.ts:

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

test('додає 1 + 2, щоб отримати 3', () => {
  expect(sum(1, 2)).toBe(3);
});

Запустіть свої тести з:

npx jest

Приклад виводу, який вказує на пройдений тест, має виглядати так:

 PASS  ./sum.test.ts
  ✓ додає 1 + 2, щоб отримати 3 (2 ms)

Для асинхронного коду Jest підтримує async/await. Припустимо, у вас є асинхронна функція fetchData:

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

Ваш тест із використанням асинхронних функцій:

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

test('успішно отримує дані', async () => {
  expect(await fetchData()).toBe('data');
});

Під час запуску ваших тестів Jest дочекається вирішення промісу, правильно тестуючи асинхронні операції.

Пам’ятайте, ефективне тестування включає написання декількох тестів для різних сценаріїв, включаючи крайні випадки, щоб забезпечити очікувану поведінку вашого коду на TypeScript.