カテゴリ: Laravel 更新日: 2026/03/05

Laravelでエラーメッセージや例外をテストする方法を初心者向けにやさしく解説

Laravelでエラーメッセージや例外をテストする方法
Laravelでエラーメッセージや例外をテストする方法

先生と生徒の会話形式で理解しよう

生徒

「Laravelでエラーが出たときって、ちゃんと表示されているかテストできるんですか?」

先生

「はい、エラーメッセージや例外もテストで確認できます。」

生徒

「失敗する動きもテストするってことですか?」

先生

「その通りです。失敗したときの動きを確認するのも、とても大切なんですよ。」

1. Laravelのテストでエラーを確認する理由

1. Laravelのテストでエラーを確認する理由
1. Laravelのテストでエラーを確認する理由

Laravelのテストでは、正常に動く場合だけでなく、エラーが起きたときの動作も確認します。たとえば、入力が足りないときにエラーメッセージが表示されるか、存在しないデータにアクセスしたときに正しい画面になるか、といった点です。これは、転んだときにちゃんとクッションがあるかを確かめるようなものです。失敗したときの安全確認が、アプリの信頼につながります。

2. エラーメッセージと例外の違い

2. エラーメッセージと例外の違い
2. エラーメッセージと例外の違い

エラーメッセージとは、ユーザーに「入力が間違っています」などと伝える表示です。一方、例外とは、プログラムの中で「これ以上処理できない」と判断したときに投げられる特別なエラーです。例外は内部的なトラブル、エラーメッセージは利用者向けの注意書き、と考えると分かりやすくなります。

3. バリデーションエラーをテストする方法

3. バリデーションエラーをテストする方法
3. バリデーションエラーをテストする方法

Laravelでは、入力チェックをバリデーションと呼びます。入力が足りない場合、エラーメッセージが自動で表示されます。この動きをテストで確認することができます。ここでは、名前が未入力のときにエラーになるかをテストしています。


public function test_validation_error()
{
    $response = $this->post('/register', [
        'name' => '',
    ]);

    $response->assertSessionHasErrors('name');
}

4. エラーメッセージの内容を確認する

4. エラーメッセージの内容を確認する
4. エラーメッセージの内容を確認する

エラーが出るだけでなく、正しいメッセージが表示されているかも重要です。表示文が違うと、ユーザーが混乱してしまいます。テストでは、セッションに保存されたエラーメッセージの内容を確認できます。文字が合っているかをチェックすることで、安心して画面を出せます。


public function test_error_message_text()
{
    $response = $this->post('/register', [
        'name' => '',
    ]);

    $response->assertSessionHasErrors([
        'name' => '名前は必須です',
    ]);
}

5. HTTPステータスコードのエラーをテストする

5. HTTPステータスコードのエラーをテストする
5. HTTPステータスコードのエラーをテストする

Webの世界では、数字で状態を表します。これをステータスコードと呼びます。たとえば、404は「ページが見つからない」という意味です。Laravelのテストでは、この数字も確認できます。ページが存在しないときに、正しく404になるかを確認するのはとても大切です。


public function test_not_found_error()
{
    $response = $this->get('/not-exists-page');

    $response->assertStatus(404);
}

6. 例外が発生することをテストする

6. 例外が発生することをテストする
6. 例外が発生することをテストする

例外とは、プログラムが意図的に処理を止める仕組みです。Laravelでは、特定の条件で例外を投げることがあります。テストでは、その例外が本当に発生するかを確認できます。これは、非常ベルがちゃんと鳴るかを試す訓練のようなものです。


public function test_exception_thrown()
{
    $this->expectException(\Exception::class);

    throw new \Exception('エラーが発生しました');
}

7. 例外を表示せず画面を確認する

7. 例外を表示せず画面を確認する
7. 例外を表示せず画面を確認する

テスト中は、例外をそのまま画面に出さず、エラーページとして確認したい場合もあります。そのときは、例外処理を通常通り動かします。これにより、ユーザーが見る画面が正しいかを確認できます。内部エラーを見せない工夫も、品質の一部です。


public function test_error_page_display()
{
    $response = $this->get('/error-page');

    $response->assertSee('エラーが発生しました');
}

8. 初心者が意識したいエラーテストの考え方

8. 初心者が意識したいエラーテストの考え方
8. 初心者が意識したいエラーテストの考え方

エラーのテストは、失敗を探す作業です。最初は不安に感じるかもしれませんが、「間違えたときにどうなるか」を確認するだけです。正しく動くことと同じくらい、正しく止まることも大切です。エラーを味方につけることで、安心して使えるLaravelアプリを作れるようになります。

カテゴリの一覧へ
新着記事
New1
Symfony
Symfonyのルーティング構成の基本を完全解説!初心者向けにYAML・PHP・アノテーション方式をやさしく紹介
New2
Laravel
Laravelのルートグループの使い方!初心者でもわかるprefixやミドルウェアの設定方法
New3
PHP
PHPのswitch文の使い方!多くの条件分岐をスッキリ書く方法と注意点
New4
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
人気記事
No.1
Java&Spring記事人気No1
PHP
PHPのif文の使い方を完全ガイド!初心者でもわかる条件分岐の基本
No.2
Java&Spring記事人気No2
CodeIgniter
CodeIgniterルーティングを完全攻略!正規表現でURLを自由自在に操る方法
No.3
Java&Spring記事人気No3
PHP
PHPのswitch文の使い方!多くの条件分岐をスッキリ書く方法と注意点
No.4
Java&Spring記事人気No4
PHP
PHPで文字列を結合する方法!ドット演算子と代入演算子の使い方を徹底解説
No.5
Java&Spring記事人気No5
Symfony
Symfonyで翻訳(i18n)機能を使う方法を解説!初心者にもわかる国際化対応の基本
No.6
Java&Spring記事人気No6
CodeIgniter
CodeIgniter(コードイグナイター)入門!どんな開発案件に向いている?利用シーン別解説
No.7
Java&Spring記事人気No7
Laravel
LaravelのAPIルーティングを設定する方法!初心者でもわかるapi.phpの使い方
No.8
Java&Spring記事人気No8
Laravel
Laravelのview()関数の使い方を完全ガイド!初心者でもわかるBladeテンプレート表示と画面作成