1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RailsでDBにテスト用の初期データを効率良く入れるには

Posted at

はじめに

テスト環境で統合テストやら単体テストやら試すときに初期データがないと不便な場合ってありますよね。私はあります。まあ、私、テストはおろそかにしまいがちなので準備不足なだけですが...

そんなときのために、いかに効率良く初期データを入れていくかについて考えてみました。

ベストな方法

みんな思いついてるとは思いますが、開発環境があるのでそれを活用しようと考えた。具体的には、db:resetしてから実際に開発環境を動かしてそれなりのデータをpostしてからdb:seed:dumpしちゃう方法。
これがベストだと思ってます。予期せぬpostに対応できるのかよーって感じですが、初期データはあくまで呼び出してからのテストになるので、postのテストはまた別途書く必要が出てくるので初期データとしては条件を満たしているのかと考えています。

スクレイピングやら、csvやらのファイルを一度データベースに突っ込んでしまって、そこからdumpしといた方がdb/seed.rbには優しいので、そんな感じで私は開発しています。不変なデータはまとまった段階でdumpして残しておくってのが大事かなと。

具体的な手順

1.開発環境のデータベースをリセットする

db:reset

2.開発環境を動かして、必要な初期データを蓄積させる

3.データをdump

db:seed:dump

こんな手順で、db/seed.rbファイルに初期データを集めています。
開発環境のデータをリセットしないがちなので、定期的にテストコードつくろうってなったときにデータベースのリセットにつながるので効率が良いと思って取り組んでます。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?