登录的用户可以访问资源,并且可以通过不同的方式到达那里。我想要一个示例组,每个测试都具有相同的期望。
我将page.should have_content("...")
期望放在一个after(:each)
块中,但这不是一个很好的解决方案:如果我将它声明为挂起,它无论如何都会失败。如果失败,则错误(起初)显示为白色。
我应该如何编写每个都有相同期望的示例组?
登录的用户可以访问资源,并且可以通过不同的方式到达那里。我想要一个示例组,每个测试都具有相同的期望。
我将page.should have_content("...")
期望放在一个after(:each)
块中,但这不是一个很好的解决方案:如果我将它声明为挂起,它无论如何都会失败。如果失败,则错误(起初)显示为白色。
我应该如何编写每个都有相同期望的示例组?
听起来您想要一个共享的示例组:
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.