CodeIgniter 3 で PHPUnit を使ってテストをする

CodeIgniter標準のテストは貧弱なのでPHPUnitが使える実装を探していました。
いくつかあるようなのですが、公式forumで検索すると以下が出てきました。
CI PHPUnit Test for CodeIgniter 3.0
 

ci-phpunit-test

kenjis/ci-phpunit-test
おすすめ要素としては
・CodeIgniter3準拠
・Product Ownerが日本人(kenjis
 FuelPHPの本書いている鈴木さんなので安心です。
 pull requestも速攻取り込んで改良もしてくれました。
 これ読んでないけど、そのうち読んでみようと思います。

はじめてのフレームワークとしてのFuelPHP 改訂版

はじめてのフレームワークとしてのFuelPHP 改訂版

ちなみにPRの内容は

404/500 をテスト可能にするようにしました。
routingのエラーケースを書こうとしたら、testできなくて困っていました。
CodeIgniter本体のソース見て驚いたのですが
盛大にexit してて、うわーthe PHP だなぁと思いました。
余談ですが、どうやらexitを取り除くPRを本体に出したそうなんですがrejectされたようです。
 
対応方法としては、
強引なやり方ですが、テスト時に404/500 をoverrideしてExceptionを投げるようにして
テストできるようにしています。

結論

CodeIgniter使ってる人もテスト書こうぜ。
PHPUnit はいいやつですよ。(PHPUnitいいね - rochefort's blog