تعلّم كيفية اختبار تمارين Pharo الخاصة بك على Exercism
في أبسط مستوياته، يقوم Exercism كله على الاختبارات والاختبار، فهو الذي يدفع تطبيقك إلى الأمام ويخبرك متى صار التمرين مكتملًا.
يوفّر Pharo دعمًا رائعًا للعمل مع الاختبارات، وللاختبار التدريجي! يمكنك تشغيل أي اختبار لتمرين ما بالنقر على الكرة المجاورة لصنف أو طريقة حالة الاختبار.

تتلوّن كرات الاختبار حسب نتيجة آخر تشغيل للاختبارات:
رُقّمت الاختبارات في تمارين Exercism عن قصد لتحديد ترتيب تنفيذ واضح (مثل test01_verifySomeProperty و test02_verifyAnotherProperty وما إلى ذلك).
عند العمل على تمرين، يُستحسن أن تنقر على كرة الاختبار الأول، وأن تفهم سبب الفشل وما يلزم لاجتيازه، ثم تضيف الكود إلى حلك ليعمل. في Pharo، من الطبيعي تمامًا إجراء هذه التغييرات داخل المنقّح، حيث تكون لديك إمكانية الوصول إلى محرّر الكود وإلى عرض لجميع المتغيرات والمعاملات التي تساعدك على فهم المشكلة.
ملاحظة: ليس من الممارسات المعتادة تسمية الاختبارات ببادئة ترتيبية، ولا ينبغي لك فعل ذلك عند كتابة اختبارات لمشروعك الخاص.
يرحّب Pharo بتشغيل كود معطوب، وعند مواجهة خطأ يُعاد المنقّح إلى الظهور ببساطة (سواء كان خطأ نحويًا، أو قيمة غير صالحة، أو حتى صنفًا أو طريقة مفقودة). كانت هذه التقنية من أهم المؤثرات في التطوير الموجّه بالاختبارات، ويمكنك أن تتذوّق هذا الأسلوب عندما تجرّب تشغيل الاختبار الأول لأي تمرين. سيُظهر لك المنقّح فورًا أن صنف الحل الخاص بك غير موجود (لأنك لم تكتب شيئًا بعد). ولحسن الحظ، يوجد زر "Create" يساعدك على إضافة الصنف المفقود ومواصلة تشغيله حتى ينتهي، أو حتى تصادف خطأ آخر.

مع اختبارك الأول، ستواجه بعد ذلك خطأً ثانيًا لأنك لم تكتب أي طرق بعد. ومرة أخرى، يتيح لك زر "Create" في المنقّح تعريف طريقة جديدة ومواصلة التشغيل. في هذه المرحلة، يمكنك أيضًا النقر في مكان أبعد أسفل تتبّع المكدّس ومراجعة متطلبات الاختبار الفاشل وتعديل طريقتك الجديدة لاجتيازه.
في مرحلة لاحقة من دورة تطويرك، قد يفيدك أيضًا أن تنقر في مكان أبعد للخلف في المكدّس وأن تستخدم زر "Restart" لاستئناف تنفيذ البرنامج من نقطة سابقة، بحيث يمكنك بعد ذلك تتبّع برنامجك خطوة بخطوة لترى ما يجري. وهذه طريقة مهمة ومفيدة لفهم سبب عدم عمل برنامجك.
إلى جانب رؤية المتغيرات في المنقّح، يمكنك أيضًا تحديد أي عبارة والنقر على inspect/print لرؤية نتيجة تقييمها. وقد يكون هذا مفيدًا عند اختبار نتائج طريقة ما، أو عند فحص الحالة الداخلية لكائن ما.

لا تنسَ أنك تستطيع أيضًا إجراء تغييرات على الكود الحيّ داخل المنقّح، وأن حفظ التغيير سيؤدي ببساطة إلى إعادة تشغيل التنفيذ في الطريقة التي حفظتها للتو. يتيح لك هذا أن تجرّب التغييرات وترى نتائجها وأنت ما زلت في خضمّ العمل.
في الختام، لا تخف من استخدام المنقّح في Pharo؛ فنحن نراه أداة قيّمة تساعد على فهم المشكلة والتجريب عليها.
إذا احتجت يومًا إلى تشغيل مجموعات أكبر من الاختبارات، فيمكنك تشغيلها أيضًا من قائمة Package، وكذلك استخدام أداة Test Runner (يمكن الوصول إليها من قائمة World أو بكتابة <meta> + OU).
يمكنك أيضًا تشغيل الاختبارات برمجيًا من الـ playground عن طريق تقييم أمر الطباعة:
AllExercismTests suite run.
إذا أردت معرفة المزيد عن البنية الداخلية للاختبارات، فيمكنك القراءة عن SUnit أو تصفّح الكود في هرمية TestCase.
هل كنت تعلم: أن TDD اختُرع في Smalltalk عبر إدخال مكتبة الاختبار SUnit