Як тестувати власні вправи з 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
Опис того, як цим користуватися, закоментовано в тому лістингу файлу, і цей лістинг наведено повністю.