2014-09-26 79 views
0

我正在嘗試學習TDD,並且無法通過Capybara和Rspec來進行此集成測試。用戶訪問主頁,點擊「登錄」,用「電子郵件」和「密碼」填寫表格,點擊「登錄」,然後我希望網頁的內容爲「成功登錄」。RSpec /水豚 - 未能登錄

home_page_spec.rb

require 'spec_helper' 

feature 'Login' do 
    scenario 'user logs in to the site' do 
    visit root_path 
    click_link 'Login' 
    expect(page).to have_content "Sign in to your account." 
    fill_in('Email', with: "[email protected]") 
    fill_in 'Password', with: "password" 
    click_button 'Log in' 
    expect(page).to have_content('Signed in Successfully') 
    end 
end 

我收到「失敗/錯誤:期待(頁)。爲了have_content( '在簽名成功'),希望能夠找到文 「簽名成功」。 。「它找到的文本是頁面中的符號。就好像測試正在找到登錄按鈕,但是不是單擊它,或者按鈕不是轉發頁面,但是如果我在瀏覽器中手動執行此操作,它將起作用。有什麼建議麼?謝謝。

+1

在調試水豚錯誤時,最好的辦法是在失敗的期望行之前添加一個'save_and_open_page'行。這將在您的瀏覽器中啓動該頁面,您可以(希望)看到您的測試中出了什麼問題。 – 2014-09-27 03:39:08

回答

1

您可以使用gem capybara-screenshot保存頁面html和屏幕截圖,當測試失敗時。這樣你可以調試問題。或者,您可以暫時切換到selenium webdriver,capybara,它將打開默認瀏覽器並執行您的測試。