8
用RSpec測試一堆不同測試用例的最佳方法是什麼?RSpec方案大綱:多個測試案例
例如,假設string-additions.rb:
require 'rspec'
class String
if method_defined? :reverse_words
raise "String#reverse_words is already defined"
end
def reverse_words
split(' ').reverse!.join(' ')
end
end
describe String do
describe "#reverse_words" do
specify { "hello".reverse_words.should eq("hello") }
specify { "hello world".reverse_words.should eq("world hello") }
specify { "bob & pop run".reverse_words.should eq("run pop & bob") }
end
end
當我運行rspec string-additions.rb --color --format doc
,我得到:
String
#reverse_words
should == hello
should == world hello
should == run pop & bob
不過,我想獲得合理的輸出,這樣的:
String
#reverse_words
"hello" => "hello"
"hello world" => "world hello"
"bob & pop run" => "run pop & bob"
而且,我想DRY上我的規格了一下。 RSpec是否提供了用於幹這種多案例測試的模板?類似於Cucumber scenario outlines?
注意:此問題與Is there an equivalent in RSpec to Cucumber's 「Scenarios」 or am I using RSpec the wrong way?類似,但提供了一個應使用RSpec而不是Cucumber進行測試的示例。