0

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

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

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

4

1 回答 1

1

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

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

You can also have shared contexts if what you want to share is the setup stuff.

于 2012-12-29T10:12:44.633 回答