CakePHP1.2 SimpleTest でコントローラのテストケースを作成
CakePHP1.2 SimpleTest でテストケースを作成する ではモデルのテストケースを作成したので今度はコントローラのテストケースを作成してみました。
コントローラのテストケースは app/tests/case/conrollers 以下に作成します。
app/tests/case/conrollers/user_controller.test.php
<?php
class UsersControllerTestCase extends CakeTestCase {
function testIndexTitle() {
$result = $this->testAction('/users/index', array('return'=>'render'));
$this->assertPattern("/<title>TITLE<\/title>/", $result);
}
function testIndexSet() {
$result = $this->testAction('/users/index', array('return'=>'vars'));
$this->assertTrue(isset($result["users"]));
}
}
?>
モデルの時と同じようにテストを行うメソッドは test%Hoge% という名前にします。
testAction でコントローラのアクションを実行します。testAction の2番目の引数に array(‘return’=>’render’) を指定するとコントローラの render を実行した結果が返ります。array(‘return’=>’vars’) を指定するとビューに渡した値が全て配列で返ってきます。何も指定しないとコントローラのアクションで return で指定された値が返ります。
テストの実行はモデルと同様です。上記コードを追加すると App Test Cases に自動的に controllers/users_controller.test.php が追加されます。そのリンクをクリックすることによりテストが実行できます。

ポイントは、モデルと違いインスタンスを作成せずに testAction でテストをするというところでしょうか。
参考 URL
Cookbook :: 1.2 Collection :: マニュアル :: Common Tasks With CakePHP :: Testing
関連する投稿
One comment
コメントをどうぞ
Additional comments powered by BackType
3scientists…
…