Ruby和Rails都是新手,使用Test::Unit
開發應用程序。我來自PHP和PHPUnit的背景,他們爲data providers
提供了正式結構:您可以在一個方法中定義參數的嵌套數組/散列,然後循環通過單個測試,交換每個過程中的參數。這是使用不同參數重複測試相同事件的簡明方法。Rails測試的數據提供者
我迄今發現的唯一的解決方法是手動複製的概念,一個單一的測試裏面:
test "should properly do something" do
provider = [
{:var1 => 'foo', :var2 => 'bar', :expected => true},
{:var1 => 'foo', :var2 => 'baz', :expected => true},
{:var1 => 'invalid', :var2 => 'bar', :expected => false},
# ...
]
provider.each do |t|
assert_equal(t.expected, SomeObject.some_method(t.var1, t.var2))
end
end
這並不讓我儘可能多的有用的測試輸出,因爲它不能辨別哪些循環實際上在發生錯誤時失敗。
有沒有更好的方法來做到這一點?
謝謝,DMKE!仍在挖掘Ruby/Rails測試。你的pref,Test :: Unit或RSpec是什麼?附:這個生態系統很龐大。 –
我會強烈推薦RSpec。如果您需要閱讀材料,請查看Aaron Sumner [用RSpec進行的Everyday Rails測試](http://everydayrails.com/)。 – DMKE