0

database_cleaner gemを使用してスペックのクリーニングを設定しようとしています。私のspec_helper.rbには、次の簡単な構成があります。

require 'database_cleaner'


RSpec.configure do |config|
  config.use_transactional_fixtures = false

  config.before :suite do
    DatabaseCleaner.strategy = :truncation
  end

  config.before :each do
    DatabaseCleaner.start
  end

  config.after :each do
    DatabaseCleaner.clean
  end
end

ただし、仕様を実行すると、DatabaseCleaner.clean の実行後にデータベースが完全に消去されることに気付きました。テストの影響のみをクリーンアップすることを意図していると確信しています...そのような動作を引き起こす可能性のあるアイデアはありますか?

4

1 に答える 1

4

これは、戦略が に設定されているためです。これにより:truncation、実際にすべてがクリアされます。

テストで行われたことだけに制限したい場合は、戦略を次のように変更します:transaction

大まかに言えば、切り捨ては非常に単純であり、TEST データベースでは問題になりません。

于 2013-03-18T07:09:24.700 に答える