تعلّم كيفية اختبار تمارين Ruby الخاصة بك على Exercism
نفّذ الاختبارات بالأمر التالي:
$ ruby hamming_test.rb
سيُنفَّذ الاختبار الأول فقط، أما بقية الاختبارات فقد جُعلت معلّقة باستخدام طريقة skip. احذف skip التالي أو اجعله تعليقًا كلما نجحت في اجتياز اختبار جديد.
تُخبر طريقة skip مجموعة الاختبارات بألا تشغّل اختبارًا معينًا. ويُستخدم هذا عادةً لتجنّب تشغيل اختبارات ميزات لم تُنفَّذ بعد، حتى تركّز على الجزء الذي تعمل عليه حاليًا.
سيعرض ملخّص تشغيل الاختبارات عدد الاختبارات المتخطاة. ويُستحسن أن تعطّل جميع عمليات التخطي قبل إكمال التمرين.
إذا أردت مخرجات ملوّنة، فنفّذ الاختبارات بالأمر التالي:
$ ruby hamming_test.rb -p
وإذا أردت رؤية أسماء الاختبارات، فنفّذ الاختبارات بالأمر التالي:
$ ruby hamming_tests.rb -v
وإذا أردت تشغيل اختبار واحد فقط، فيمكنك تحديد اختبار واحد أو مجموعة باستخدام مطابقة على نمط التعابير النمطية.
$ ruby hamming_tests.rb -n /empty/
ويمكنك أيضًا الجمع بين الخيارات.
بعد أن اكتشفت قدرتك الجديدة على تحديد الاختبارات الفردية أو مجموعات الاختبارات التي تريد تشغيلها، قد ترغب في تعطيل جميع عمليات التخطي.
باستغلال أن الطرق في Ruby قابلة لإعادة التعريف، إذا أضفت سطر الكود التالي:
def skip ; end
كهذا في ملف اختبار Hamming:
class HammingTest < Minitest::Test
def skip ; end
def test_identical_strands
فإن جميع عمليات التخطي ستظل تُقيَّم، لكن اختباراتك ستُشغَّل.
بالطبع، قد يكون تعديل جميع الملفات مع مرور الوقت أمرًا مزعجًا، لذا يمكنك أن تفعل كما فعلنا عند تطوير التمارين: أنشئ ملفًا يحتوي على تعريف skip، ثم اطلبه كمكتبة عند الحاجة إليه.
أنشأنا مجلد lib لنحتفظ فيه بالأمور «المساعدة»، وهو يبدو هكذا:
require 'minitest/autorun'
# You can use this to disable all skips in the current exercise by issuing the
# following command:
# ruby -I../lib -rdisable_skip <filename_test.rb>
module Minitest
class Test
def skip(_msg='', _bt=caller)
end
end
end
الوصف الخاص بكيفية استخدامه موجود في تعليقات الملف أعلاه، والملف معروض بكامل محتواه.