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

LaravelでAPIのレスポンスをテストする方法を完全解説!assertJsonで初心者も安心

LaravelでAPIのレスポンスをテストする方法(assertJsonなど)
LaravelでAPIのレスポンスをテストする方法(assertJsonなど)

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

生徒

「LaravelでAPIを作ったんですが、ちゃんと正しいデータが返っているか不安です…」

先生

「それならAPIのレスポンスをテストする方法を覚えると安心ですよ。」

生徒

「パソコン操作もあまり慣れていませんが、大丈夫でしょうか?」

先生

「画面の表示を確認する感覚で理解できるので、ゆっくり進めていきましょう。」

1. APIとレスポンスとは何か

1. APIとレスポンスとは何か
1. APIとレスポンスとは何か

APIとは、アプリ同士が情報をやり取りするための窓口です。例えば、レストランで注文を取る窓口のような存在です。レスポンスとは、その注文に対して返ってくる料理のようなものです。LaravelでAPIを作ると、多くの場合はJSON形式という決まった形のデータが返ってきます。APIテストでは、この返ってくる内容が正しいかを確認します。

2. LaravelでAPIテストを行う理由

2. LaravelでAPIテストを行う理由
2. LaravelでAPIテストを行う理由

APIは画面に表示されないことが多いため、目で確認しづらいです。そのため、テストコードを書いて自動で確認します。これにより、修正を加えても壊れていないかすぐ分かります。Laravelのテスト機能を使えば、実際にアクセスしたような形でAPIのレスポンスをチェックできます。

3. APIレスポンスをテストする基本の流れ

3. APIレスポンスをテストする基本の流れ
3. APIレスポンスをテストする基本の流れ

APIテストは「アクセスする」「返ってきた結果を見る」「正しいか確認する」という流れです。Laravelではgetやpostといった命令でAPIを呼び出し、assertJsonなどの命令で内容を確認します。assertは「本当にそうなっているか確認する」という意味です。


public function test_api_returns_status_ok()
{
    $response = $this->get('/api/sample');
    $response->assertStatus(200);
}

4. assertJsonで中身を確認する方法

4. assertJsonで中身を確認する方法
4. assertJsonで中身を確認する方法

assertJsonは、APIのレスポンスに含まれるJSONデータが正しいかを確認するための機能です。買い物のレシートを見て、合計金額が合っているか確かめる感覚に近いです。必要な項目が含まれているかを簡単にチェックできます。


public function test_api_returns_json_structure()
{
    $response = $this->get('/api/user');
    $response->assertJson([
        'name' => 'Taro',
        'email' => 'taro@example.com'
    ]);
}

5. JSONの形だけを確認するassertJsonStructure

5. JSONの形だけを確認するassertJsonStructure
5. JSONの形だけを確認するassertJsonStructure

値は変わるけれど、項目の形だけ確認したい場合があります。そのときに便利なのがassertJsonStructureです。箱の中身までは見ず、箱がちゃんと用意されているかを確認するイメージです。


public function test_api_json_structure_only()
{
    $response = $this->get('/api/user');
    $response->assertJsonStructure([
        'id',
        'name',
        'email'
    ]);
}

6. 配列データを返すAPIのテスト

6. 配列データを返すAPIのテスト
6. 配列データを返すAPIのテスト

APIでは、複数のデータを配列として返すことがあります。例えば、商品一覧のような場合です。その場合もLaravelのテストで簡単に確認できます。


public function test_api_returns_list()
{
    $response = $this->get('/api/items');
    $response->assertJsonCount(3);
}

assertJsonCountは、データの数が合っているかを確認します。

7. ステータスコードとJSONを組み合わせて確認

7. ステータスコードとJSONを組み合わせて確認
7. ステータスコードとJSONを組み合わせて確認

APIテストでは、ステータスコードとJSONの両方を確認するのが基本です。ステータスコードは、処理が成功したかどうかを示す番号です。200は成功を意味します。これを一緒に確認することで、より安全なテストになります。


public function test_api_success_response()
{
    $response = $this->get('/api/sample');
    $response->assertStatus(200)
             ->assertJson(['result' => 'success']);
}

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

初心者がよく迷うのは、JSONの形と値の違いです。まずは「項目が存在するか」を確認し、慣れてきたら「値が正しいか」を見ると理解しやすいです。LaravelのAPIテストは、画面を見ずに中身を確認できる便利な仕組みなので、少しずつ慣れていきましょう。

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