概要
DatabaseCleanerでテストデータクリア
内容
DatabaseCleanerでテストデータクリアします。
FactoryGirl+Capybara(+ブラウザテスト)などの構成を利用する際に、
FactoryGirlとブラウザ側が別トランザクション管理になるため、
transactionを有効にしないとテストデータを共有できません。
そこでDatabaseCleanerを使用してデータをクリアします。
設定
Gemfileに以下を追加
gem "database_cleaner", "~> 1.0.1"
bundleの実行
bundle
サンプル
Rails+RSpecに組み込んでみます。
下記設定で、RSpecの各スペック実行後にDBの内容がクリアされます。
spec_helper.rb
require 'database_cleaner' RSpec.configure do |config| config.before(:suite) do DatabaseCleaner.strategy = :truncation end config.before(:each) do DatabaseCleaner.start end config.after(:each) do DatabaseCleaner.clean end end