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 מתנהג כצפוי.