В приведенном ниже тесте блоки Bar и Baz содержат идентичные спецификации.
Оставляя в стороне, почему такое повторение было необходимо в первую очередь, я задаюсь вопросом, как можно было это высушить.
Я пытался превратить блоки в объекты и вызывать их под Баром и Базом, но, возможно, из-за того, что я не понял правильные рамки, я не смог заставить его работать.
describe Foo do
describe Bar do
before(:each) do
prepare
end
it "should do something" do
true
end
it "should do something else" do
true
end
end
describe Baz do
before(:each) do
prepare_something_else
end
it "should do something" do
true
end
it "should do something else" do
true
end
end
end