モノラルログ

マツオ ( @matsuoshi / monaural.net ) のざっくりしたブログです

CakePHP + PHPUnit でのテストで、例外を判定

CakePHP のコントローラでのテストで、たとえば 404エラーが発生することを確認するためのテストコードの例です。

<?php
    App::uses('PostsController', 'Controller');

    class PostsControllerTest extends ControllerTestCase
    {
        public $fixtures = array(
            'app.posts',
        );

        public function test存在しないIDはNotFound()
        {
        // 404 Not Found が発生することを期待
        $this->setExpectedException('NotFoundException');

        // コントローラにアクセス
        $this->testAction("/posts/detail/99999999");
        }
    }

PHPUnit の $this->setExpectedException() を使います。