بدلاً من فتح البرنامج وتجربته يدوياً في كل مرة، تكتب بضعة أسطر من الشيفرة تستدعي الدالة وتقارن النتيجة بالقيمة الصحيحة. هذا هو اختبار الوحدة.

مثال#

افترض أن لديك دالة تحسب الخصم:

PYTHON
def discount(price, percent):
    return price - price * percent / 100

def test_discount():
    assert discount(200, 10) == 180
    assert discount(100, 0) == 100

كلما غيّرت الشيفرة شغّلتَ الاختبار. وإذا اختلفت النتيجة عرفتَ في اللحظة نفسها.

المزايا#

  • يكتشف الخطأ مبكراً: قبل وصوله إلى المستخدم.
  • يمنح الجرأة على التغيير: مع الاختبارات تستطيع إعادة هيكلة الشيفرة دون خوف.
  • توثيق حي: تُظهر الاختبارات ما يُفترض أن تفعله الدالة.
  • رخيص: تشغيل عشرات الاختبارات في ثوانٍ.

اختبار وحدة جيد#

  • سريع ومستقل.
  • يفحص سلوكاً واحداً.
  • لا يعتمد على الإنترنت ولا على قاعدة بيانات حقيقية.
  • يجرّب الحالات الحدّية أيضاً: القيمة صفر، والنص الفارغ، والرقم السالب.

موقعه بين الاختبارات الأخرى#

اختبار الوحدة هو قاعدة هرم الاختبار. وفوقه اختبار التكامل (عدة أجزاء معاً) والاختبار الشامل (End-to-End، مثل سلوك المستخدم في المتصفح) وهما أبطأ وأكثر كلفة.

الذكاء الاصطناعي#

يمكن أن تطلب من مساعد ذكاء اصطناعي اقتراح اختبارات، لكن تأكد أن الاختبارات تقيس السلوك الصحيح فعلاً، لا مجرد ما تُرجعه الشيفرة الحالية.