Обзор сценария RSpec: несколько тестовых примеров

Как лучше всего протестировать кучу различных тестовых примеров с помощью RSpec?

Например, с учетом string-adds.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-adds.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? s «Сценарии» или я неправильно использую RSpec? , но предоставляет пример, который следует тестировать с помощью RSpec, а не Cucumber.

8
задан Community 23 May 2017 в 10:28
поделиться