2010-01-12 125 views
3

正如我已經寫了一個Rails應用程序測試套件,我注意到,有兩種不同的方式來創建測試,一個test塊和一個普通的方法:紅寶石測試:塊與方法

test "the truth" do 
    assert true 
end 

def test_for_something_else 
    assert true 
end 

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

編輯:在進一步的檢查,寫成方法在rake:stats計數而那些與test語法編寫不測試。有一個區別...

回答

4

我覺得塊語法是由於行爲驅動開發框架,如RSpec的普及增加,他們更自然應該做X ...語法。最後,這是個人喜好的問題。

+0

很酷。我假設Rails沒有修改rake:stats代碼來解釋更新的語法。 – Andrew 2010-01-12 11:27:54

+0

沒錯。自去年2月份以來已有一張門票可供使用:https://rails.lighthouseapp.com/projects/8994/tickets/1915-rake-stats-bad-method-count – 2010-01-12 18:48:48

1

我希望技術上兩者之間沒有區別。前者允許你用一個字符串來描述你的測試,而對於後一種形式,你必須提出一個描述性的方法名稱,有時候這個名字很長,很難閱讀[1]。由於這種差異,我個人更喜歡前者,但最終取決於個人/項目偏好。

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

0

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