[英]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.