使用capybara断言通过ajax发生的事情

时间:2011-11-02 21:27:00

标签: ruby-on-rails ajax testing capybara

我仍在使用Rails 2.3.x并使用Rspec,Capybara和Steak进行一些验收测试。

我希望能够编写2个测试,一个使用js驱动程序,另一个使用普通的旧机架测试。

是否可以编写这样的测试?

visit "/foo"
click_link "Load a new Foo via ajax!"
# assert foo loaded by ajax and not by browser natively following link
page.should have_content("New foo here")

换句话说,假设产品要求是“如果用户启用了javascript,页面将不会重新加载”。有没有办法在测试中表达(即页面没有完整重新加载)?

1 个答案:

答案 0 :(得分:0)

是的,这应该是开箱即用的。 Capybara有一个默认的等待时间。只需确保足够长的时间来处理AJAX请求。以下是更多信息:http://codetunes.com/2011/08/20/testing-ajax-reloaded-elements-with-capybara

另外,您是否有机会查看EM视频标签问题?