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