

こんにちは。最近Railsで開発し始めていて、疑問に思った点を質問します。

* * *

# 質問の概要

`db/seeds.rb` と `test/fixtures/**.yml`の連携方法を教えて欲しいです。  
あるいは、考え方の根本から間違っているのでしょうか……？

* * *

# 質問の詳細

### 前提となる自分の理解

`db/seeds.rb` は本番環境でも用いる初期データを流し込むためのファイル(= マスタデータの流し込み用スクリプト)、
`test/fixtures/**.yml` はテスト環境で用いるダミーデータを生成するためのファイルであるという認識をしています。

### 実現したいこと

例えば、会社の社員管理システムを立ち上げるとしましょう。単純に部署と社員を結びつけるだけのシステムだとします。

部署の一覧は開発段階で既に確定している上、本番環境でも初期データとして投入したいです。すなわち、 `db/seeds.rb`
を使って流し込みを行いたいです。

一方、社員は開発段階ではまだ未定なので、開発・テスト用の社員を(Faker等を用いて)ダミーデータとして登録したいです。これは
`test/fixtures/**.yml` を使って流し込むのが適切と考えます。

以上の用に開発・テスト環境を構築しようと考えました。

### 分からなかったこと

ここで、部署と社員を関連付ける方法が分かりませんでした。

`test/fixtures/**.yml` のデータのみで関連付けるならばYAMLに `<参照先モデル>: <参照データ名>`
と書けば良いと分かったのですが、 `db/seeds.rb` で生成されるデータと `test/fixtures/**.yml`
内のデータを関連付ける方法が分かりませんでした。

### お聞きしたこと

「分からなかったこと」にある疑問を直接解決できる方法があるならばぜひ教えていただきたいです。

また、こういったことは不可能であるという場合、どのように対処するのが適切なのでしょうか。対処方法、あるいはポピュラーなgem等があるならば教えていただきたいです。

* * *

説明が下手で長文となってしまいました。  
ご回答お待ちしております。


CC BY-SA 4.0
2019-01-20T10:56:36.337
52136
2019-01-20T10:56:36.337
31851
question
ruby-on-rails テスト
Railsでfixtureを用いてテストデータを流し込む際のseed.rbとの連携について