2015|10|
ぷっちん日記
2008-11-12 (水) フィクスチャの使いどころ [長年日記]
■ フィクスチャの使いどころ
虫の居どころが悪く、朝早めに起きたので、Functionalテストを書きました。どうも、夢ででも何かがひらめいたようで。
で、テストについては山ほどモヤモヤしていることがあるのですが、そのひとつは、テストデータをどう書くかってこと。
Railsにはフィクスチャがあるけど、なんでもかんでもフィクスチャでやるとかえってごちゃごちゃして、こっちのテストを立てればあちらが立たず的に依存関係が大変になる気がするわけで。個人的には、
- 複数のテストファイルで前提的に使うマスタなどの環境はフィクスチャで表現。パターンごとにデータを用意するにしても、多くの機能を横断する代表的なパターン程度にとどめる。
- 基本的に特定のテストだけでつかうようなデータ状況は、テスト内でプログラムで作る
という感じにしていますけど、皆さんはどんな感じですか?
そのテストで必要なフィクスチャ一揃いを、個々のテストごとに、互いに直交になるように設定しますね。前提的なマスターは共有することもありますけれども。<br><br>そして、直交であるはずのフィクスチャ同士が互いに干渉せずにうまく動作しているというのもまた、こころよい光景です。<br><br>どうしても共存が面倒ならばそのときはfixtureファイルを分けます。
ほうほう。つまり、テストごとにレコードのセットを作っていて、基本的にマスタ(私がフィクスチャでやると言っているもの)以外はレコードを使い回さないということですね。fixtureファイルを分けるというのは、1テーブルに対応するフィクスチャファイルが複数あり、テストケースによって使うファイルを分けるってことですよね。ありがとうございます。参考になりました!
↑ちなみに「直交」がぴんとこなかったので誤解してるかもです(’’;