簡體   English   中英

Ruby測試:塊與方法

[英]Ruby testing: block vs. method

由於我一直在為Rails應用程序編寫測試套件,我注意到有兩種不同的方法可以創建測試, test塊和常規方法:

test "the truth" do
  assert true
end

def test_for_something_else
  assert true
end

兩個測試結構之間有什么區別嗎? 我什么時候應該使用另一個?

編輯:進一步檢查時,作為方法編寫的測試將計入rake:stats而使用test語法編寫的test則不計算。 有一個區別......

我認為塊語法是由於行為驅動開發框架(如RSpec)的流行而增加的,它們更自然地應該做X ...語法。 最后,這是個人偏好的問題。

我希望技術上兩者之間沒有區別。 前者允許您使用字符串來描述您的測試,而使用后者的形式,您必須提出一個描述性的方法名稱,這些名稱有時令人煩惱且難以閱讀[1]。 由於這種差異,我個人更喜歡前者,但最終歸結為個人/項目偏好。

[1] "add two interleaving timers that trigger in the opposite order"test_addTwoInterleavingTimersThatTriggerInTheOppositeOrder(...)

我發現的一個區別/煩惱是Vim與Ctags和TagList插件。 如果您的測試不是作為函數編寫的,則無法使用:TlistToggle命令快速瀏覽它們。 如果您在一個文件中進行了大量測試,則可以快速導航它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM