0
我正在嘗試在集成測試期間創建用戶以用於某些操作。我使用的設計是:可以確認的。代碼如下:在Capybara集成測試(和Selenium webdriver)期間設計用戶創建失敗
user = User.create({username: "user1", password: "pass1234", password_confirmation: "pass1234", email: "[email protected]"})
user.confirm!
fill_in "Username", :with => user.username
fill_in "Password", :with => user.password
click_button "Sign in"
問題是登錄失敗,每次我嘗試它。沒有關於用戶創建的錯誤,但出於某種原因,當我嘗試登錄時,用戶似乎沒有「在那裏」。當我嘗試登錄時,我只是收到了'無效的用戶名或密碼'。這似乎與事實有關,可能是因爲在試圖登錄之前,Capybara/Selenium webdriver沒有正確等待數據庫操作發生。如果是這樣的話,我怎麼測試它或修復它?
即使在集成測試期間嘗試插入數據庫,是否「錯誤」?
這是非常有益的,謝謝。清理一些事情。所以即使我能解決我的問題,至少我知道在將來不要這樣做。 – aardvarkk
我添加了一個註釋,因爲我注意到你的數據庫訪問是設置上下文的。這是我猜想的一個灰色地帶。你絕對不應該在你的測試中添加數據庫條目,但是創建用戶數據也許是可以的(而不是讓用戶通過界面創建一個賬戶,然後*在你的測試中做這些動作,這將是替代方案)。 –