En la prueba siguiente, los bloques Bar y Baz contienen especificaciones idénticas.DRYing especificaciones repetidas en RSpec
Dejando de lado por qué esa repetición era necesaria en primer lugar, me pregunto cómo se podría secar esto.
Intenté convertir los bloques en objetos y llamarlos en Bar y Baz, pero posiblemente porque no obtuve los ámbitos correctos, no he podido hacerlo funcionar.
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