MISC

cakePHP テスト

http://book.cakephp.org/2.0/ja/development/testing.html

これからは沢山テストをしていきたいと思います。

まずはコントローラーのテストからしてみたいと思います。 フィクスチャというものをまずは作成します。フィクスチャはテーブルの情報です。bakeで作成することもできますが、importにモデル名を設定したらモデルのテーブルの現状を使えるようです。$importでrecordsをtrueにすると、テーブルのデータ自体も使えるようです。

public $import = array('table' => 'articles', 'records' => true);

フィクスチャの例(UserFixture.php)。すごいシンプル。Userモデルのテーブル構造を利用するが、登録されているデータは使わない様。そしてFixtureで初期データの設定もしてない。

<?php
class UserFixture extends CakeTestFixture {
public $import = 'User';
}

ではコントローラーのテストをつくります。SmartPhoneControllerという変な名前のコントローラのテストを作成します。

<?php
class SmartPhoneControllerTest extends ControllerTestCase{
public function setUp(){
parent::setUp();
}
}

コントローラーのテストは、ControllerTestCaseというのを継承します。setUpメソッドは、テストの前に毎回実行されます。tearDown はテストメソッドの後に毎回呼ばれます。setupBeforeClass はクラスのテストメソッドを実行する前に一度だけ呼ばれます。tearDownAfterClass はクラスのテストメソッドをすべて実行した後に一度だけ呼ばれます。

テストでフィクスチャを読み込むには、下記のようにします。 public $fixtures = array(‘app.user’);