Ruby on Railsのfixturesを,Excelから生成しよう (テストデータを管理しやすくするためのマクロ)
〜書き途中〜
Ruby on Railsのテストの書き方 (モデルの単体テストと,コントローラの機能テスト)
http://language-and-engineering.hatenablog.jp/entry/20091023/p1
テストデータやテストケースを作る際,下記のような要望が生じる。
- yaml形式のfixturesではなく,もっと管理しやすい+編集しやすいファイル形式でテストデータを作りたい。
- →Excelでテストデータを書きたい。
- Excelならテーブル内のカラム追加・削除・名称変更が容易になる。yamlだと大変。
- Excelなら類似したレコードを大量に作るのが簡単。オートフィル機能を使えるから。
- →Excelでテストデータを書きたい。
- テストデータとして同じデータを繰り返し書かなくてすむように,テストデータ間の include を行ないたい。
- →テストデータのDRY化。変更発生時のメンテも容易にしたい。
- 1つのモデル/コントローラのテストのために,複数パターンのテストデータを利用したい。
- →テストデータを分割し,テストデータのセットを複数持ちたい。
- もしDBの状態を1通りに限定してしまったら,十分なテストはできない。状態を網羅できない。
- チーム作業時に,もしテストデータが1セットだけではコンフリクトが多発し,管理不能になる。
- →テストデータを分割し,テストデータのセットを複数持ちたい。
- テストデータにマイグレーションを利用したい。
- →テストの事前セットアップとして,動的なテーブル生成+カラム操作が可能になる。
↓
- Excelからfixturesを生成する
- Excelから他のExcelを include 可能(⇒同じデータを繰り返し書かなくてよい。テストデータのDRY)