いままでJavaしか扱ってこなかったのですが、転職しPHPを使うようになりました。
使っているフレームワークは「FuelPHP」なのですが、Unitテストでハマったので備忘録程度に記載します。
使っているもの
PHP 5.6
FuelPHP 1.8
PHPUnit 5.5.7
aspect-mock 1.0.0
起きたこと
pho oil test -group=App を実行するが、途中で止まる。
$ php oil test -group=App
Tests Running...This may take a few moments.
PHPUnit 5.5.7 by Sebastian Bergmann and contributors.
....
↑ 12ケースあるのに、5ケースで止まって終了する。結果も表示されない。
原因
Controller内でRedirectが実行されていたため。
(Redirectの内部ではexit()が呼び出されている)
対策
以下のページを参考に対応しました。
https://qiita.com/tuttieee/items/a140fb0b5c4e67386ea3
対応結果
ちゃんとテストできるようになりました!
Tests Running...This may take a few moments.
PHPUnit 5.5.7 by Sebastian Bergmann and contributors.
............ 12 / 12 (100%)
Time: 2.06 seconds, Memory: 21.75MB
OK (12 tests, 12 assertions)