読者です 読者をやめる 読者になる 読者になる

TestでFixturesのデータをexpectedに再利用したい

Modelのテストをする時に「Modelから取得できたデータ」と
「Fixturesで定義したデータ」が一致してるかを確認したくてfixtureを呼び出せないか調べた。


$this->fixtureManager

ってやるとCakeFixtureManagerオブジェクトが取れるのでそれでゴリゴリやるのかなぁとか思ったのだけど、
method見てもそれっぽいのがない。



で、ググった。
でぃべろっぱーってへてむる: CakePHPでテストする時にFixtureのデータを再利用してDRYにしよう
なるほどーなるほどー。
単純にApp::importで読み込んでるのかー。



コレを参考に、今触ってるのはCakePHP2.0なので「App::import」の代わりに「App::uses」を使うように変更し、

// 初めにApp::usesで呼ぶ
App::uses('UserFixture', 'Test/Fixture');

// テストしたいメソッドでnewする
$this->UserFixture = new UserFixture();
$expected = $this->UserFixture->records;
$this->assertEquals($expected, $actual, 'Fixtureの値が返ってきているか');

みたいな感じにしました。