5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

CakePHP2のテストで、$defaultのDBを見に行ってしまう件、解決した話し


CakePHP2のテストで、$defaultのDBを見に行ってしまう。と書きましたが、解決しました。

/App/Model/AppModel.php で__construct()を定義したとき、正しく引数を受け取って親クラスに渡してあげないといけなかったようです。

public function __construct($id = false, $table = null, $ds = null) {
    parent:__construct($id, $table, $ds);
    // 何かの処理
   }

のように引数を明示的に書いてあげます。

テストケースのsetup()にあるモデルを設定しているClassRegistry::init()が中で$useDbConfigをtestでモデルオブジェクトをインスタンスにしているところがあって、そのときのパラメータがクラスに引き渡されていないのが原因でした。

著:山田祥寛
¥3,366 (2024/11/21 16:43時点 | Amazon調べ)
著:松浦 健一郎, 著:司 ゆき
¥2,574 (2024/11/21 16:43時点 | Amazon調べ)
著:谷藤賢一, 著:徳丸浩
¥2,750 (2024/11/21 16:43時点 | Amazon調べ)