![](/img/trans.png)
[英]Integration Testing with Devise + Omniauth + Rspec + Capybara
[英]Devise user creation fails during Capybara integration testing (and Selenium webdriver)
我正在嘗試在集成測試期間創建一個用戶以用於某些操作。 我正在用:confirmable設計。 代碼如下:
user = User.create({username: "user1", password: "pass1234", password_confirmation: "pass1234", email: "test@email.com"})
user.confirm!
fill_in "Username", :with => user.username
fill_in "Password", :with => user.password
click_button "Sign in"
問題是每次我嘗試登錄都會失敗。 關於用戶創建沒有任何錯誤,但是由於某些原因,當我嘗試登錄時,用戶似乎並沒有“在那兒”。 嘗試登錄時,我只會得到“無效的用戶名或密碼”。這似乎與Capybara / Selenium Webdriver可能沒有在嘗試登錄之前未正確等待數據庫操作有關。如果是這樣,我該如何測試或修復它?
在集成測試期間甚至試圖插入數據庫是否“錯誤”?
我不使用devise自己,因此無法真正評論您遇到的問題的具體細節,但是這個問題引起了我的注意:
在集成測試期間甚至試圖插入數據庫是否“錯誤”?
是的,我通常會這樣說。
集成測試應該從用戶的角度測試代碼:
在數據庫中插入內容超出了用戶可以使用的操作范圍。 也許是用於單元測試,而不是集成測試。
話雖如此,您可能會爭辯說,為數據庫設置種子數據是該規則的一個例外,因為您正在為測試設置上下文(請參見下面的評論)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.