7
我正在使用RSpec,Spork,Capybara和Capybara Mechanic爲使用Facebook連接的註冊路徑編寫集成測試。它通過註冊正確導航,但新用戶在我的開發數據庫而不是測試數據庫中創建。如何在水豚中使用測試數據庫?
RSpec設置爲使用測試環境,並且我已確認在規範中運行的任何模型方法都會碰到測試數據庫,但所有UI操作都會觸發開發。
這裏是我的測試:
it "go through registration path" do
print "RAILS_ENV: #{Rails.env}\n" # correctly prints 'test'
print "1) #{User.count}\n" # correctly shows the user count in my test database (zero)
Capybara.current_driver = :mechanize
visit root_path
click_link "register"
# Fill in Facebook Connect form
fill_in 'email', :with => "[email protected]"
fill_in 'pass', :with => "password"
click_button "Log In"
print "2) #{User.count}\n" # still shows zero users in the test database
end
是測試我可以看看我的開發數據庫和新用戶已經創建有後。
我試過設置database_cleaner,並沒有幫助。
任何人都知道我需要做什麼,以便水豚會擊中測試數據庫?
軌3.1.3
rspec的2.7.0
叉勺0.9.0
水豚1.1.0
水豚,機械化0.3.0.rc3
你最終爲自己解決了這個問題嗎?我正在處理的應用中遇到類似問題。我試圖用測試中的記錄登錄,但它說這個記錄不存在。所以我認爲它與使用開發環境有關,但是向開發者添加記錄也表明它不存在。所以我不確定Capybara是否使用完全不同於rspecs測試環境的數據庫/環境。 – JDutil 2012-02-01 18:06:10
看到我的答案爲修復。你如何創建你的用戶?我正在使用插入到測試數據庫的FactoryGirl。 – Chris 2012-02-01 21:50:15
我也使用FactoryGirl。正在按照預期在測試數據庫內創建記錄。當我將驅動程序更改爲Selenium或Webkit並且瀏覽器需要與記錄進行交互時,他們不會返回,儘管...我已嘗試設置服務器設置,如您的答案,因爲我一直在考慮我的POW配置導致它運行在瀏覽器中處於開發模式,但事實並非如此。 – JDutil 2012-02-02 02:52:50