簡體   English   中英

Rspec / Capybara測試不一致

[英]inconsistent Rspec/Capybara tests

我已經在我的routes.rb文件中注釋了[獲取“頁面/主頁”],重新啟動了整個測試環境,並且以下測試仍通過:

it "should contain 'This is a test'" do
  get 'home'
  response.body.should have_selector("p")
end

據我了解,capybara從內存中的“瀏覽器”運行rspec測試。 在這種情況下,必須存在鐵軌路線! 在注釋掉我的路由后,它仍然能夠加載頁面-我知道這是因為如果刪除<p>選擇器,則測試將失敗。 修改routes.rb文件后,我重新啟動了測試套件,但這沒有什么不同。

這使我對測試過程失去了信任,因為我有不應該通過的測試!

看來此片段在控制器規格中,直接打到您的控制器上。 在最新版本的rspec 2.9.0中,錯誤的路由不會使此示例失敗。 路由超出了控制器規范的范圍。

似乎您打算編寫一個請求規范,該規范應使用capybara的visit方法:

# spec/requests/something_spec.rb
require 'spec_helper'

describe 'home page' do

  it "should contain 'This is a test'" do
    visit '/pages/home'
    page.should have_content 'This is a test'
  end

end

有關更多示例,請參見capybara文檔 Rspec還支持路由規范 ,但我通常僅將其用於異常路由。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM