具有相同期望的示例组

时间:2012-12-18 08:40:14

标签: ruby-on-rails rspec rspec-rails

登录用户可以访问资源,并可以通过不同方式访问该资源。我想要一个示例组,每个测试都有相同的期望。

我在page.should have_content("...")块中放置了after(:each)期望值,但这不是一个好的解决方案:如果我声明它处于挂起状态,它无论如何都会失败。如果失败,则错误显示(起初)为白色。

我应该如何编写每个具有相同期望的示例组?

1 个答案:

答案 0 :(得分:0)

听起来你想要一个共享的示例组:

describe 'foo' do
  shared_examples "bar" do
    it 'should ...' do
    end
  end

  context "when viewing in the first way" do
    before(:each) do
        ...
    end

    it_behaves_like 'bar'
  end

  context "when viewing in the second way" do
    before(:each) do
        ...
    end

    it_behaves_like 'bar'
  end
end

在前面的块中,您可以设置内容,以便以正确的方式取出操作。另一种方法是让您的共享示例调用do_foo方法,并在每个上下文中提供do_foo的不同实现。

如果您要共享的内容是设置内容,您也可以拥有共享上下文。