タグ

CakePHPとfixtureに関するt_yodoのブックマーク (2)

  • 自動テストのfixtureを効率的に管理する方法

    みなさんこんにちは。@ryuzeeです。 僕がやっている案件(PHP)はもともとテストコードのないレガシーなプロジェクトで、それを改善するためにずっと動作を確認するための結合レベルの自動テストを増やしてきました。 そんな中で、僕のところではどうやってテスト用のfixtureを管理しているか事例として紹介したいと思います。 最初にコアとなるfixtureを用意するみんながたくさんテストを作る前にコアとなるテスト用のfixtureは用意しておきます。 さもないと、みんなが好き勝手にfixtureを作ってしまい、あっという間に混乱に陥ります。 プログラム体と同様に、DRYの原則で、同じようなテストデータを繰り返し作ってしまうようなことは避けるべきです。 最悪なパターンは、開発機や番機のデータを引っこ抜いてきて、それをそのままテストデータとしてごっそり使う方法です。 流石に居ないと思いたいです

    自動テストのfixtureを効率的に管理する方法
  • テスト時に全テーブルのfixtureを自動で読み込む | へびにっき

    環境:CakePHP 1.3 テスト時に誰もが一度は経験するであろう Missing Database Table Error: Database table users for model User was not found. というエラーを回避する方法です。 …… CakePHPのテストでは必要なfixtureを全て手動で列挙する必要があります。一つ二つなら良いのですが、モデルにアソシエーションを設定すると関連するテーブル全てが再帰的に必要になるので、非常に面倒です。 それならいっそ全テーブルを自動で読み込んでくれよ、ということで自動で読み込む方法を考えました。以下のクラスに示す2メソッドを CakeTestCase のサブクラスで定義してください(CakeTestCaseを独自の拡張クラスに置き換えるも参照)。 例えばdefaultデータベースに users, posts, tag

  • 1