使用rspec和capybara测试rails + backbone应用程序

我正在使用列出的gem为我的应用程序编写测试。 我找不到如何设置Capybara与骨干(ajax in all)一起工作
示例测试:

require 'spec_helper' describe "Main" do describe "GET /" do it "displays articles" do Article.create!(title:'title',body:'

body text

') visit '/' page.should have_content('body text') end end end

和测试的输出:

 Failures: 1) Main GET / displays articles Failure/Error: page.should have_content('body text') expected there to be text "body text" in "Loading..." # ./spec/features/main_spec.rb:8:in `block (3 levels) in ' 

“正在加载…”是我视图模板中的前ajax文本…

关键是我现在不想在这个应用程序中使用Jasmine

看起来你正在使用默认的Rack :: Test驱动程序运行Capybara,这意味着没有JavaScript。 Rack :: Test加载您的应用程序并伪造Capybara API后面的浏览器DOM。

您需要使用在真实Web浏览器中运行测试的驱动程序。 有几种不同的选择:Selenium驱动程序附带Capybara并在真实浏览器(通常是Firefox)中运行测试,其他则在单独的gem中实现,例如使用PhantomJS和无头WebKit浏览器的Poltergeist 。

Capybara 自述文件中有关于设置正确驱动程序的说明。 您可以通过将js选项添加到describe块来切换一组测试以使用JavaScript支持驱动程序,例如:

 describe "Main with JavaScript", :js => true do # ... end