شرح المفهوم
يقدم هذا الدرس عادة يكتسبها المطورون الجيدون مبكرًا: فحص أجزاء صغيرة من الكود قبل أن تتحول إلى مشاكل أكبر. أنت لا تتعلم أطر عمل الاختبار الكاملة بعد. أنت تتعلم كيف تطرح أسئلة بسيطة على الكود الخاص بك وتتأكد من أن الإجابات تظل صحيحة. في بايثون، `assert` هي إحدى أسهل الطرق للقيام بذلك. تسمح لك بكتابة قاعدة قصيرة مثل "يجب ألا تكون هذه القيمة سالبة أبدًا" أو "يجب أن تُرجع هذه الدالة 42 لهذا المدخل". إذا فشلت القاعدة، تتوقف بايثون وتوضح لك بالضبط أين كان افتراضك خاطئًا. هذا مهم لأن المبتدئين غالبًا ما يعتمدون على "يبدو صحيحًا" بدلاً من التحقق من السلوك. الاختبار يغير ذلك. يمنحك طريقة سريعة لاكتشاف الأخطاء بينما لا يزال الكود صغيرًا وسهل الإصلاح. بنهاية هذا الدرس، يجب أن تكون قادرًا على: • كتابة بعض التأكيدات الأساسية لدالة مساعدة صغيرة، • فهم ما تخبرك به `AssertionError`، • استخدام فحوصات سريعة للتأكد من أن الكود الخاص بك لا يزال يعمل بعد تغيير صغير. لماذا هذا مهم: بمجرد أن تبدأ في تغيير الكود بشكل متكرر، تصبح الثقة مهمة. تمنحك الاختبارات الصغيرة هذه الثقة دون أن تجعل الدرس يبدو ثقيلاً أو معقدًا.
أين تضع الكود
- عرف متغيرات اللون والموضع في الأعلى.
- أنشئ منطق رسم الأشكال أو وضعها في المنتصف.
- اعرض المخرجات (طباعة، لوحة رسم، SVG، أو كتلة منسقة) في النهاية.
مرجع الأوامر
- استخدم `assert` للفحوصات التعليمية الصغيرة عندما تريد التأكد من أن الدالة تُرجع القيمة التي تتوقعها.
- اجعل كل تأكيد يركز على سلوك واحد ليكون من السهل فهم ما فشل.
- شغل فحوصاتك بعد كل تعديل صغير بدلاً من الانتظار حتى ينتهي الدرس.
- تعامل مع التأكيدات الفاشلة كتعليقات مفيدة، وليس كعلامة على أنك سيء في البرمجة.
دليل خطوة بخطوة
- شغل الملف مرة واحدة وتأكد من ظهور `All score checks passed.` في الطرفية.
- غير قيمة متوقعة واحدة عمدًا بحيث يفشل تأكيد، ثم اقرأ الخطأ وقم بإصلاحه.
- أضف تأكيدًا جديدًا لـ `normalize_score(0)` وشغل الملف مرة أخرى.
- أضف تأكيدًا آخر لـ `normalize_score(100)` لاختبار كلا طرفي النطاق الصالح.
- اكتب جملة قصيرة تشرح لماذا تكون الفحوصات السريعة مفيدة قبل أن يصبح السكريبت أكبر.
تمارين تطبيقية
- أنشئ دالة مساعدة ثانية تحد من قيمة درجة الحرارة ضمن نطاق آمن، ثم اكتب تأكيدين أو ثلاثة لها.
- غير الدالة بحيث تُرجع قيمة خاطئة لحالة واحدة وتأكد من أن تأكيداتك تكتشف الخطأ.
- صف بكلماتك الخاصة الفرق بين "الكود يعمل" و "الكود صحيح للحالات التي اختبرتها".
تحديات برمجية
- اكتب نسخة من الدالة التي تثير `ValueError` للمدخلات المستحيلة بدلاً من إصلاحها بصمت، ثم قرر أي نمط يبدو أوضح لهذا الدرس.
- أنشئ دالة اختبار صغيرة لدالة مساعدة للسلاسل النصية، مثل إزالة المسافات الزائدة أو تحويل اسم إلى أحرف كبيرة، وتأكد من أن كل تأكيد سهل القراءة.
مهام تمرين صغيرة
- شغل الملف ثلاث مرات بعد تعديلات صغيرة لكي يصبح الاختبار أمرًا طبيعيًا.
- احتفظ بتأكيد فاشل واحد عمدًا لمدة دقيقة، اقرأه بعناية، ثم أصلحه.
- اكتب ملاحظة لنفسك: `Small tests help me trust my code.`
خطأ شائع
Mixing x and y axes or using wrong coordinate origin causes shapes to appear in unexpected places.
تحدٍ مصغّر من الواقع
Draw one square, one triangle, and one circle, then move X marker 2 steps right and 1 step down.