CakePHP でテスト駆動開発

参考にした情報。

CakePHP1.2 に SimpleTest をインストール
CakePHP1.2 SimpleTest でテストケースを作成する

が良エントリ。

CakePHP では SimpleTest というテストモジュールを使うらしい。ここからダウンロードして解凍し、app/vendors か vendors に配置する。SimpleTest はテスト結果をウェブベースで表示するようである。app/webroot/test.php がテスト実行のエントリポイントである。

http://(サーバ名)/(CakePHP アプリケーションへのパス)/test.php

という感じの URL にブラウザからアクセスする。

テストの書き方。たとえば、post.php というモデルがある場合、app/test/cases/models/post.test.php というテスト用のファイルを作成する。

App::import('Model', 'Post');

class PostTestCase extends CakeTestCase {
	function testTruth() {
		$this->assertFalse(false);
	}
}

これで、http://(サーバ名)/(CakePHP アプリケーションへのパス)/test.php にアクセスしてテストを走らせると、テストが成功するはずだ。

詳しくは、 CakePHP1.2 SimpleTest でテストケースを作成するを参照のこと。

モデルに関しては、これでテストが書けそうだ。でも、コントローラについてはどうなんだろう?ディレクトリ構成を見るために、app/tests で find . を実行する。

./groups
./groups/empty
./cases
./cases/components
./cases/components/empty
./cases/behaviors
./cases/behaviors/empty
./cases/controllers
./cases/controllers/empty
./cases/helpers
./cases/helpers/empty
./cases/models
./cases/models/post.test.php
./fixtures
./fixtures/empty

cases/controllers というディレクトリがあるのが見える。コントローラもテストできるような気もする。まだやり方がよくわからない。これはおいおい見ていくことにしよう。