在capybara(在rspec中)的after_request?

时间:2012-05-11 17:48:04

标签: ruby-on-rails testing rspec capybara

我们希望在每次请求后验证页面上没有转义的HTML或XSS。在Cucumber中,我们有一个AfterStep(只要当前页面与上一页不同)。

有没有办法做到这一点?

编辑:请参阅https://gist.github.com/603295,了解我希望找到的旧版本(不再有用版本)的示例。

2 个答案:

答案 0 :(得分:1)

Rspec为你提供了以下钩子:

https://www.relishapp.com/rspec/rspec-core/v/2-0/docs/hooks/before-and-after-hooks

简而言之:

after(:each)
after(:all)
after(:suite)

答案 1 :(得分:0)

这是我能想到的最好的,这非常接近(但是,它仍然只在每个例子之后,而不是在每次请求之后):

在我的规范助手中,我添加了这样的内容:

RSpec.configure do |config|
  config.after(:each, type: :feature) do
    # this is run after each example in Capybara, and I did stuff like
    page.body.should_not match(UNESCAPED_REGEX)
  end
end