了解如何在 Exercism 上測試你的 Ruby 練習。
用以下指令執行測試:
$ 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 的定義放進一個檔案,需要的時候再將它當作函式庫 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
如何使用它的說明就寫在那份檔案的註解裡,而那份檔案也已經是完整的內容。