Fixtureの書き方メモ
Railsのテストではテストデータの管理(Fixture)としてYAMLを使える。以前「YAMLだと表っぽく書けないなぁ」と思っていたのだけど、それっぽくできることに気がついたのでメモ。
http://yaml.org/spec/1.2/ の「7.4. Flow Collection Styles」より
cd1: account_type: 1 name: にゅうきん1 cd2: account_type: 1 name: にゅうきん2 :
は、
cd1: { account_type: 1, name: にゅうきん1 } cd2: { account_type: 1, name: にゅうきん2 } cp1: { account_type: 2, name: しゅつきん1 }
と書ける。
まぁ、RailsのFixtureではCSVでも書けるので、それを使えばもっとすっきり書けるけれど、各インスタンスに対するエイリアスの付け方が分からないので、マスタ系のテーブルには使っていない。
ちなみに、
1) IndexError in '#{モデル名} ほにゃらら' string not matched
というエラーが出る場合は、高い確率で「6.2. Separation Spaces」に違反して
cd1: account_type:1 name:にゅうきん1
とかなっているのでコロンの右隣にスペースが入っているか要チェック。