モデルを RSpec でテストするとき、次のコードを使用してデータベースをクリーンアップします。
config.before(:suite) do
begin
DatabaseCleaner.start
ensure
DatabaseCleaner.clean
end
end
config.after(:suite) do
DatabaseCleaner.clean_with(:truncation)
end
すべてのモデル テストに合格しますが、コントローラーをテストすると、モデルが動作するのと同じデータセットを使用しているように見え、テストがエラーになります。
代わりに、次のコードを使用して Controller テストをパスさせることができます。
config.before(:suite) do
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
ただし、これにより、モデル テストが失敗します。どちらかのテスト セットを壊さずにこれらのブロックを組み合わせる方法について何かアドバイスはありますか?