新しいフォルダー

気になったことや勉強したことについて書いていきます

PHPUNIT Exceptionのテストをする場合の注意点

テストかいてて混乱したので備忘録として残しておく。

まず、PHPUNITではassert~の判定でfalseになった場合Exceptionを吐いている。

そのため、try{ 処理 } catch {Exception $e} だけだと判定によるExceptionなのか、実際にthrowされたExceptionなのか区別ができなくなる。

 

try{

 mogemoge(); ←☆このメソッドではthrow newExceptionをする

 $this->assertTrue(False); ←● assertでfalse判定

} catch(PHPUnit_Framework_AssertionFailedError $e){
 ●ここに飛んでくる
} catch(Exception $e) {
 ☆ここに飛んでくる
}

※☆の処理でExceptionを吐いた時点で●の処理は実行されない

 

Catchで取り分けることで意図的なExceptionとassertによるExceptionを切り分けることができる。