【发布时间】:2014-08-13 16:48:44
【问题描述】:
我正在我的网站上进行一些内置 Spree 的集成测试。我正在使用 RSpec + Capybara 来进行这些测试。
我发现在较新版本的 Capybara 中,wait_until 已从源代码中删除,因为不再需要以这种方式等待 AJAX 请求。不知何故,现在 Capybara 足够聪明,可以等待 AJAX 请求。
我做的很简单:
visit product_path(product)
within '.vip-buy-content' do
first('.buy-button').click
end
expect(page.current_path).to eq(cart_path)
当按钮被点击时,一个 AJAX 请求就完成了。当 AJAX 请求完成时,会发生重定向。
但是,期望失败了,因为 Capybara 似乎会比 AJAX 请求和重定向更快地处理这个。
如果在期望值之上添加“sleep 10”,则规范将通过,因为它有足够的时间来处理它。
我想要一种更好的方式来等待重定向。有什么想法吗?。
【问题讨论】:
标签: ruby-on-rails ruby ajax rspec capybara