2013-03-09 37 views
0

我正在为列出的宝石编写我的应用程序测试。我找不到如何设置水豚与骨干工作(在所有AJAX)
例如测试:测试rspec&capybara的测试导轨+主干应用程序

require 'spec_helper' describe "Main" do describe "GET /" do 
    it "displays articles" do 
     Article.create!(title:'title',body:'<p>body text</p>') 
     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 <top (required)>' 

“载入中...”是在我看来模板前阿贾克斯文字...

的一点是,我不希望在目前使用的茉莉花为这个应用程序

回答

3

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

您需要使用在真实Web浏览器中运行测试的驱动程序。有几种不同的选择:Selenium驱动程序随Capybara一起提供,并在真正的浏览器(通常是Firefox)中运行测试,其他则在不同的宝石中实现,如使用PhantomJS和无头WebKit浏览器的Poltergeist

有关于建立正确的驱动程序水豚readme的说明。您可以切换一组测试通过将js选项的描述块,例如使用JavaScript支持的驱动程序:

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

这http://www.opinionatedprogrammer.com/2011/02/capybara-and- selenium-with-rspec-and-rails-3 /可以帮助你 – Sakeer 2015-07-08 08:47:53

相关问题