私はもともとsqlite3を使用していた小さなRailsアプリケーションを持っていますが、mysqlに切り替えることにしました。切り替えた後、rspec テストの 1 つが壊れましたが、その理由はわかりません (sqlite3 を使用すると問題なく動作し、実際のページを介して機能をチェックすると正しく動作しているように見えます)。
私のテストは次のとおりです。
before(:each) do
@a = FactoryGirl.create(:a)
@b = FactoryGirl.create(:b)
@relationship = @a.connector.build( :b_id => @b)
@relationship.save
end
テスト 1:
it "should have the right b" do
@relationship.b.should == @b
end
テスト 2:
it "should have the right a" do
@relationship.a.should == @a
end
私のテストでは、テスト 1 は失敗しますが、mysql を使用するとテスト 2 は成功します (sqlite3 を使用する場合は両方のパス)。私の知る限り、データベースを切り替えるだけであれば、テスト自体に変更を加える必要はありません。または、データベースを更新するために何かを追加する必要がある場合は?
関連するメモとして、特に実際の開発は機能するがテストが失敗する場合、rspec テスト自体の問題をデバッグするための推奨される方法は何ですか? (Rails 3.1 と rspec-rails 2.10.1 を使用しています)。
ご意見をお寄せいただきありがとうございます。
よろしく、