LoginSignup
3
3

More than 3 years have passed since last update.

E2Eテストのテストデータの削除

Last updated at Posted at 2019-07-25

はじめに

turnipとchromedriverを使った、RailsのE2Eテストの導入を検討しています。こちらの記事で、turnipで、FactoryBotを使用して初期データの作成及びその利用まで成功しましたが、テスト後にtestデータベースにデータが残ってしますので、それを削除する仕組みを導入します。

環境

macOS Majave 10.14.5
ruby 2.4
Rails 5.0.4
database_cleaner 1.7.0

結論

DatabaseCleanerという、gemを入れました。

group :development, :test do
  gem 'database_cleaner' # 追加
end
bundle isntall
spec/spec_helper.rb
require 'database_cleaner' # 先頭に追記

RSpec.configure do |config|
  ...
  DatabaseCleaner.stategy = :truncation

  # RSpecの実行前に1度、実行
  config.before(:suite) do
    DatabaseCleaner.clean
  end

  # rspecでいうexample、turnipでいうシナリオが終わるごとに実行
  config.before(:each) do
    DatabaseCleaner.clean
  end  

  # 最後に1度、実行
  config.after(:suite) do
    DatabaseCleaner.clean
  end
  ...
end

これで、テスト実行後の、testテーブルは毎回空になるようになりました。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3