Ruby 在RSpec中干燥重复规格

Ruby 在RSpec中干燥重复规格,ruby,rspec,dry,Ruby,Rspec,Dry,在下面的测试中,Bar和Baz块包含相同的规格 撇开为什么一开始这种重复是必要的不谈,我想知道怎样才能把它擦干 我尝试将这些块转换为对象,并在Bar和Baz下调用它们,但可能是因为我没有正确设置范围,所以无法使其工作 describe Foo do describe Bar do before(:each) do prepare end it "should do something" do true end it "sho

在下面的测试中,Bar和Baz块包含相同的规格

撇开为什么一开始这种重复是必要的不谈,我想知道怎样才能把它擦干

我尝试将这些块转换为对象,并在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

您可能需要创建宏。以下是一些教程: