2017.09.28 phpunitで例外が発生したことのテスト

ここのところphpunitのテストを作成しているのですが、例外発生を確認する方法をよく忘れてしまうのでメモ
 
想定
*OSはcentos
*laravelフレームワークのServiceのテスト
*なんとかService の なになにメソッド()のテストを作成するとします。
*パラメータにyearが必要、yearがnullの時500番エラーが発生することを確認するテストを作成
 
 
 
コマンドでテスト実行
$phpunit tests/Service/なんとかServiceTest.php 
 
 
するとセバスチャンがこんなエラーを言ってきます。
 
PHPUnit 5.7.15 by Sebastian Bergmann and contributors.
E                                                                   1 / 1 (100%)
 
Time: 3.95 seconds, Memory: 17.50MB
There was 1 error:
1) なんとかService::testなになにメソッド
Exception: /作業している場所/app/Services/なんとかService.php(51) [500] year is null
ERRORS!
Tests: 1, Assertions: 0, Errors: 1.
 
 
テストがエラーにならないようにtry catch でExceptionが発生したことを確認するテストにしたいので
 
11行目以降を以下に変えます。
 
 
 
assertEquals(予想した値, 実際の値, メッセージ)
 
このメソッドはよく使います。
予想した値 と 実際の値 が等しければ assertion成功
等しくなければ メッセージを返します。
 
getCode()メソッドはエラーコードを取得
 
 
再びphpunit実行
 
 
PHPUnit 5.7.15 by Sebastian Bergmann and contributors.
.
Time: 3.95 seconds, Memory: 17.50MB
OK(1 test, 1assertion)
 
 テスト成功しました。
 
 
 
 
 
 
 

この記事を書いた人

深尾 美智子東京開発チーム
東京都出身 1983年生まれ
前職はカフェ店員 全くのIT初心者。独学と研修でITの勉強を10ヶ月行う。
2016年12月ライジングサン企画に入社。
趣味はLINEスタンプ作り、iPhoneアプリ作り、ハワイアンキルト、映画観賞