我正在升級我的Rails應用程序以使用Turbolink 5來利用本機包裝。我已經更新了所有javascript,並且所有內容在瀏覽器和Android應用程序中都按預期工作。使用js true時,我遇到了一些水豚測試問題。在撰寫本文時,我正在使用最新的水豚(2.11.0),poltergeist(1.12.0)和phantomjs(2.1)。我也嘗試過水豚-webkit驅動程序,但都沒有成功。Turbolinks 5 /水豚/ Rails
我看起來有問題的地方在於,turbolinks 5中的所有表格都應該通過遠程提交,turbolinks知道如何處理請求。我發現在Capbara中,我的表單在提交後不會重定向,而是保持在同一頁面上。我做了很多谷歌搜索和反覆試驗,並做了一些簡短的介紹。任何幫助將不勝感激。如果需要更多信息,請告訴我。
scenario 'user has dispatch permission and valid attributes', js: true do
sign_in('jdoe')
page.visit path
page.fill_in 'contact_text_input', with: 'Jimmy'
page.select 'Medium - 3 Hours', from: 'Priority'
page.fill_in 'Created By', with: 'John Doe'
page.click_button 'Create This'
save_and_open_page
expect(page.current_path).to eq("/dispatch")
expect(page).to have_content('This was created successfully')
end
def sign_in(username)
page.visit '/'
page.fill_in 'Username', with: username
page.fill_in 'Password', with: 'test'
page.click_button 'Log In'
end
您是否正在使用'js_errors:true'運行Poltergeist以確保您沒有任何JS錯誤或使用不受支持的JS函數/功能(Poltergeist 2.1.1不支持ES2015 - 儘管如此,新的2.5 beta版本) 。另外請注意,在你的JS中使用'let'會在Poltergeist 2.1.1 –
中悄然失敗。另外 - 由於'sign_in'沒有等待登錄完成,我預計你的測試會失敗。這意味着您的測試中的'page.visit路徑'可能會在auth cookie被設置之前調用,因此不會載入您認爲它的頁面。你應該有一些確保登錄已完成的內容,比如'expect(page).to have_text('You have logged in!')'或者頁面上顯示的任何內容以表示登錄成功。 –
比你對所有指針,登錄問題是我所擁有的,所以我一定會嘗試。我試圖安裝phantomjs的測試版,但簽署的問題可能是我正在遇到的 –