やりたいこと
- 開発環境のようにテストにおいても初期データを作成したい
- なんなら開発環境とテスト環境の初期データを共通管理したい
- RSpec配下のファイルで初期データを設定したい
もともとRSpecうんちゃら以外のところはminitest時代に設定していました。今回RSpecに移行したのでそもそもの開発環境とテストの初期データ共通化の設定方法から記事にします。
seeds.rbで使うデータを指定する
seeds.rbのデフォの使い方としては POLO(plane old Ruby object / 素のRuby)で必要なデータを記述して、実行することで各環境のDBにデータが格納される。
# 例: 管理者を作成する Admin.create!( email: 'admin@admin', password: 'adminmin' )
seeds.rbにrake処理を書くと指定のファイルからデータの形式を取得することができるようになります。
# frozen_string_literal: true system('rake db:fixtures:load FIXTURES_PATH=spec/fixtures')
rakeタスクを実行し、データベースにフィクスチャをロードするように書かれています。
ここでのFIXTURES_PATH
に代入した値がロード先のファイルになります。これによって読み込み先をminitestにしたり、RSpec
配下のディレクトリにすることができます。