我想檢查點擊「登錄」按鈕後是否加載了正確的頁面。如何檢查按鈕正確點擊後的頁面內容?
users_spec.rb
before :each do
user = User.create(:email => '[email protected]', :password => '123')
end
it "signs me in" do
visit '/users/sign_in'
within("#new_user") do
fill_in 'Email', :with => '[email protected]'
fill_in 'Password', :with => '123'
click_button 'Sign in'
end
expect(page).to have_content '#{user.name}'
end
指望(頁)。爲了have_content '主頁' 檢查是否有相同的頁面,在那裏的形式位於user.name字。那麼,click_button有什麼意義呢?如何使它檢查頁面上的內容,應該在click_button之後加載?順便說一下,如何正確命名這些測試? 對不起,如果這是一個愚蠢的問題,我是rspec的新手:c
謝謝!
如果我寫expect(頁面).to has_content(「您現在已登錄」),即使有dusc消息,測試也不會通過。但是,只有當我檢查sign_in表單所在內容的smth時,測試纔會通過。這不一定是關於user.name。如果登錄後在頁面上顯示「Hello」,則在sign_in表單所在的頁面上沒有該單詞的情況下,expect(page).to has_content(「Hello」)不會通過。這就是問題所在,我不明白爲什麼要使用button_click,如果測試不能在頁面上工作,這個按鈕是指或者我做的是錯誤的( – Jakov
)你正在做的事情是錯的 - 要麼這個應用程序不是真的單擊按鈕時登錄,或者您沒有檢查下一頁上存在的文本 - 您的測試日誌應該會顯示實際請求。由於您是rspec和capybara的新手,我假設您使用機架測試驅動程序,它沒有JS的支持 - 你的應用程序實際登錄如果JS被禁用或需要JS的工作 - 如果是這樣你需要使用其中一個Capybaras其他驅動程序 –