カテゴリ: Laravel 更新日: 2026/02/24

Laravelでリダイレクトやフラッシュメッセージをテストする方法を完全解説!初心者向けLaravelテスト入門

Laravelでリダイレクトやフラッシュメッセージをテストする方法
Laravelでリダイレクトやフラッシュメッセージをテストする方法

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

生徒

「Laravelで画面が別のページに移動したり、メッセージが表示されたりしますが、ちゃんと動いているか確認できますか?」

先生

「できますよ。Laravelのテスト機能を使えば、リダイレクトやフラッシュメッセージも確認できます。」

生徒

「画面を実際に見なくても分かるんですか?」

先生

「はい。自動で画面の動きを確認するような形でテストできます。」

1. Laravelのリダイレクトとは?

1. Laravelのリダイレクトとは?
1. Laravelのリダイレクトとは?

Laravelのリダイレクトとは、ある処理が終わったあとに、別のページへ自動で移動する仕組みです。ログイン後にトップページへ移動する動作などが代表例です。

これは、案内係が「次はこちらです」と別の場所へ誘導してくれるようなイメージです。正しい場所に移動しているかを確認するのが、リダイレクトのテストです。

2. フラッシュメッセージとは何か

2. フラッシュメッセージとは何か
2. フラッシュメッセージとは何か

フラッシュメッセージとは、画面を移動したあとに一度だけ表示されるメッセージです。「登録が完了しました」などの案内文がよく使われます。

付箋を一度だけ貼って、次の画面で剥がれるようなイメージで覚えると分かりやすいです。

3. リダイレクト処理の基本例

3. リダイレクト処理の基本例
3. リダイレクト処理の基本例

まずは、処理後に別ページへ移動する基本的なコード例です。


return redirect('/home');

このコードは、「処理が終わったら/homeへ移動する」という意味です。この動作が正しいかをテストで確認します。

4. リダイレクトをテストする方法

4. リダイレクトをテストする方法
4. リダイレクトをテストする方法

Laravelのテストでは、移動先のURLが正しいかを確認できます。実際にクリックする必要はありません。


public function test_redirect_to_home()
{
    $response = $this->post('/login');

    $response->assertRedirect('/home');
}

assertRedirectは、「指定したページへ移動したか」を確認する命令です。目的地にちゃんと到着したかを見るチェックポイントのような役割です。

5. フラッシュメッセージを設定する例

5. フラッシュメッセージを設定する例
5. フラッシュメッセージを設定する例

次に、フラッシュメッセージを設定する基本的な例を見てみましょう。


return redirect('/home')->with('message', 'ログインしました');

このコードは、画面移動と同時に「ログインしました」というメッセージを一度だけ保存します。

6. フラッシュメッセージをテストする方法

6. フラッシュメッセージをテストする方法
6. フラッシュメッセージをテストする方法

テストでは、メッセージが正しく保存されているかを確認できます。


public function test_flash_message_exists()
{
    $response = $this->post('/login');

    $response->assertSessionHas('message', 'ログインしました');
}

assertSessionHasは、「メッセージが保存されているか」を確認する命令です。伝言メモがちゃんと残っているかを見る感覚です。

7. リダイレクトとメッセージを同時にテストする

7. リダイレクトとメッセージを同時にテストする
7. リダイレクトとメッセージを同時にテストする

実際の画面では、リダイレクトとフラッシュメッセージは同時に使われることが多いです。テストでもまとめて確認できます。


public function test_redirect_and_flash()
{
    $response = $this->post('/login');

    $response->assertRedirect('/home');
    $response->assertSessionHas('message');
}

このように書くことで、「正しい画面に移動し、必要なメッセージもある」ことを一度に確認できます。

8. 初心者にとってテストが役立つ理由

8. 初心者にとってテストが役立つ理由
8. 初心者にとってテストが役立つ理由

Laravelでリダイレクトやフラッシュメッセージをテストすると、画面を何度も操作しなくても動作確認ができます。操作ミスや見落としを防ぎ、安心して修正できるのが大きなメリットです。

特に初心者の方にとっては、「ちゃんと動いている」という確かな確認ができることで、不安を減らしながら学習を進められます。

関連記事:
カテゴリの一覧へ
新着記事
New1
CodeIgniter
CodeIgniterでRESTful API開発!初心者でもわかる全体構成ガイド
New2
Symfony
Symfonyのコントローラとは?作成・構造・役割を初心者向けにやさしく解説!
New3
Symfony
Symfonyでバリデーションメッセージを多言語対応する方法!初心者でもわかる国際化の基本
New4
Symfony
Symfonyのキャッシュ機構の基本を理解しよう(HTTPとアプリ別)
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのシングルアクションコントローラとは?使い方と利点
No.2
Java&Spring記事人気No2
Laravel
Laravelで動的パラメータをルートに渡す方法!初心者にもやさしいルートパラメータの使い方入門
No.3
Java&Spring記事人気No3
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.4
Java&Spring記事人気No4
Laravel
Laravelでキャッシュを使う方法(ファイル・Redis・Memcached)
No.5
Java&Spring記事人気No5
Laravel
Laravelで名前付きルートを設定する方法!初心者でもわかるroute()関数の使い方
No.6
Java&Spring記事人気No6
Symfony
Symfonyの依存性注入(DI)とは?コンストラクタでの注入方法を初心者向けに徹底解説
No.7
Java&Spring記事人気No7
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.8
Java&Spring記事人気No8
Laravel
Laravelでコントローラを作成する方法(artisanコマンド)