私は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も設定しようとしましたが、それは助けにはなりませんでした。
capybaraがテストデータベースにヒットするように、私は何をする必要があるのか分かりますか?
レール3.1.3
RSpecの2.7.0
先割れスプーン0.9.0
カピバラ1.1.0
0.3.0.rc3
あなた自身でこの問題を解決しましたか?私が取り組んでいるアプリでも同様の問題が発生しています。私はテストでレコードでログインしようとしていますが、レコードが存在しないと言っています。だから私はそれがdev環境を使用することに関連していると思っていたが、devにレコードを追加することは、それも存在しないと言っている。だから私はカピバラがrspecsテスト環境とは全く異なるデータベース/環境を使用しているかどうかはわかりません。 – JDutil
修正についての私の答えを見てください。どのようにユーザーを作成していますか? FactoryGirlを使用してテストデータベースに挿入しています。 – Chris
私はFactoryGirlも使用しています。レコードは、意図したとおりにテストデータベース内に作成されています。私はドライバをSeleniumやWebkitに変更するとブラウザがレコードとやりとりする必要がありますが、私はPOW設定が実行されていると考えていたので、ブラウザのdevモードでは、それはどちらの場合もそうではありません。 – JDutil