2012-08-02 66 views
0

對我溫柔:我有流感,只有少數我的神經突觸發射!麻煩請求測試開始

這裏有一個簡單的請求測試RSpec的:

require 'spec_helper' 

describe 'Home Page' do 
    it 'should mention Home' do 
    get '/' 
    response.body.should have_content("Home") 
    end 

end 

大。有用。現在,我想驗證在主頁上打開時也會加載圖像。我假設有一個類似於has_content()的圖像匹配器,所以我首先去尋找have_content()的定義。

https://www.relishapp.com/rspec/search?query=have_content 
http://guides.rubyonrails.org/testing.html 
http://api.rubyonrails.org/ 

找不到但我記得有RSpec的漂亮的命名規則的匹配,所以(例如)even?() => be_even()。但即使如此,在上面搜索「內容」也找不到任何東西。

(順便說一句,我敢肯定,我不是在尋找相同名稱的水豚的方法,因爲我正在做一個get,而不是visit,對吧?)

在由於過於模糊而拒絕接受這個問題的風險:這種方法來自哪裏,我在哪裏可以學到我還可以傳遞給response.body.should

回答

1

RSpec請求規格使用Capybara,因此您可以使用getvisit

如果你想只檢查該網頁有正確的鏈接的<img>元素,你可以使用:

response.should have_selector('img', :src => '...') 
+0

所以只是爲了確保我的理解:即使我做了一個Rails'GET'(而不是水豚'訪問'),我仍然可以使用Capybara的'have_content()'匹配器產生response.body? (並且由此產生的響應中的'have_selector()') – 2012-08-03 16:27:19

+0

對不起,我寫的有點誤導。你可以同時使用'get'和'visit',但它們是不同的。看看這個博客文章:http://blog.plataformatec.com.br/2012/06/improving-the-integration-between-capybara-and-rspec/但你絕對可以在'get的響應中使用'have_selector' '。 – 2012-08-03 22:22:16

+0

足夠好用於選中標記。我已經在Capybara RSpec匹配器上找到了這些文檔,但沒有多少關於如何使用它們的信息。例如,你什麼時候使用'response.body.should 'vs'response.should '? – 2012-08-05 06:50:47