Как лучше всего протестировать несколько различных тестовых примеров с помощью RSpec?
Например, задано string-дополнения. 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 шаблон для СУШЕНИЯ такого рода тестирования нескольких случаев? Что-то похожее на Огуречный сценарий: ?
Примечание: этот вопрос похож на Есть ли в RSpec эквивалент «сценариев» Cucumber или я неправильно использую RSpec? , но предоставляет пример, который следует тестировать с RSpec, а не с Cucumber.