2013-03-09 66 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

相關問題