حالات الاختبار
Test Cases
حالات الاختبار — Test Cases
حالة الاختبار الجيدة تقول: عندما أعطي هذه المدخلات، أتوقع هذا الناتج. يمكن تمثيل الحالات في array ثم المرور عليها. هذا النمط يجعل إضافة حالات جديدة سهلة، ويكشف إن كان الاختبار يغطي أمثلة متنوعة.
اكتب أسماء للحالات عندما يصبح السلوك مهماً. لا تختبر فقط الحالة السعيدة. أضف صفر، قيمة فارغة، وقيمة عند الحد. TypeScript يمنع أنواعاً خاطئة، لكنه لا يخبرك هل الحساب التجاري صحيح.
مثال عملي
هذا ليس إطار اختبار كامل، لكنه يثبت الفكرة: cases واضحة، ودالة منفصلة.
استخدام مكتبة assertions حقيقية
في مشاريع حقيقية، تستخدم مكتبة assertions بدلاً من === اليدوي لأنها تعطي رسائل خطأ مفيدة عند الفشل. مثال باستخدام Node.js builtin (node:assert):
import assert from "node:assert/strict";
assert.equal(discountLabel(15), "15% off");
// إذا فشل: AssertionError: '10% off' == '15% off'
مثال مع Vitest (الخيار الكانوني في مشاريع TypeScript الحديثة):
import { expect, test } from "vitest";
test("discountLabel returns correct format", () => {
expect(discountLabel(15)).toBe("15% off");
expect(discountLabel(0)).toBe("0% off");
});
الفرق الجوهري: === اليدوي يُخبرك بـpass/fail فقط. مكتبة assertions تُخبرك بالقيمة الفعلية والمتوقعة، مما يجعل تشخيص الفشل فورياً.
expected مهم
لا تجعل الاختبار يكرر نفس منطق الدالة. اكتب قيمة متوقعة صريحة حتى يكشف الخطأ.