yii/テスト/fixture

Last-modified: 2012-03-08 (木) 19:51:17 (2081d)

fixtureとは

  • DBのテーブルに対してphpunitでいうところのsetupとteardownをやってくれる機能のこと
  • テーブルごとにfixtureを設定すると以下のことを自動でやってくれる
    • テスト実行時にレコードを全削除
    • 実行時の削除処理後にfixtureファイルで書いた要素をセットする

規約

  • ファイル名は必ずテーブル名と同じでなければならない

書き方

<?php
   return array(
            'sample1'=>array(
                          'title'=>'aaaaaaaaaaa',
                          'description'=>'eeeeeeeeeeeee',
             ),
            'sample2'=>array(
                           ...
             ),
   );

テスト内でどう使うか

こんなときは

勝手に初期化(全削除)してほしくない

  • そのテーブルのfixtureファイルは作らない

全削除以外の初期化設定がしたい

  • init.phpっていうファイルを作ってその中に初期化処理を書く

テーブルごとにinit.phpを設定したい

  • (テーブル名).init.phpを作成、その中に初期化処理を書く

参考