یاد بگیرید چگونه تمرینهای Ruby خود را در Exercism Test کنید.
testها را با این دستور اجرا کنید:
$ ruby hamming_test.rb
فقط اولین test اجرا میشود؛ بقیه با استفاده از متد skip در حالت معلق قرار گرفتهاند. هر بار که یک test را پاس میکنید، skip بعدی را حذف کنید یا آن را کامنت کنید.
skipهامتد skip به مجموعهی testها میگوید که یک test را اجرا نکند. این کار معمولاً برای پرهیز از اجرای testهای مربوط به قابلیتهایی است که هنوز پیادهسازی نشدهاند، تا بتوانید روی بخشی که همین حالا روی آن کار میکنید تمرکز کنید.
خلاصهی اجرای testها نشان میدهد چند test نادیده گرفته شده است. پیش از کامل کردن یک تمرین، بهتر است همهی skipها را غیرفعال کنید.
اگر رنگ میخواهید، testها را با این دستور اجرا کنید:
$ ruby hamming_test.rb -p
اگر میخواهید اسمهای testها را ببینید، testها را با این دستور اجرا کنید:
$ ruby hamming_tests.rb -v
اگر میخواهید فقط یک test را اجرا کنید، میتوانید یک test یا گروهی از آنها را با تطبیق به سبک «عبارت باقاعده» مشخص کنید.
$ ruby hamming_tests.rb -n /empty/
میتوانید این گزینهها را با هم ترکیب کنید.
skipهاحالا که با این امکان تازه میتوانید testهای دلخواهتان را بهصورت تک یا گروهی انتخاب کنید، شاید بخواهید همهی skipها را غیرفعال کنید.
با استفاده از این واقعیت که در Ruby میتوان متدها را بازنویسی کرد، اگر این خط را اضافه کنید؛
def skip ; end
مثل این، در فایل test مربوط به Hamming:
class HammingTest < Minitest::Test
def skip ; end
def test_identical_strands
آنوقت همهی skipها همچنان ارزیابی میشوند، اما اجازه میدهند testهای شما اجرا شوند.
البته، ویرایش همهی فایلها بهمرور زمان میتواند آزاردهنده باشد، پس میتوانید همان کاری را بکنید که ما هنگام توسعهی تمرینها کردیم: فایلی بسازید که تعریف skip در آن باشد و هر وقت که خواستیم، آن را بهعنوان کتابخانه require کنیم.
ما یک پوشهی 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
روش استفاده از آن بهصورت کامنت در همان فایل توضیح داده شده است؛ این فایل هم بهطور کامل آمده است.