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

Laravelでコマンド(artisan)のテストを行う方法を初心者向けにやさしく解説

Laravelでコマンド(artisan)のテストを行う方法
Laravelでコマンド(artisan)のテストを行う方法

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

生徒

「Laravelのartisanコマンドって、テストすることもできるんですか?」

先生

「できますよ。画面操作だけでなく、コマンドの動きもテストできます。」

生徒

「コマンドって黒い画面で動かすやつですよね?それも確認できるんですか?」

先生

「はい。文字の表示や処理結果まで、しっかりチェックできます。」

1. artisanコマンドとは何か

1. artisanコマンドとは何か
1. artisanコマンドとは何か

Laravelには、artisanと呼ばれるコマンド操作の仕組みがあります。これは、黒い画面に文字を打ち込んで、プログラムに指示を出す方法です。たとえば、ファイルを作ったり、データを整理したりといった作業を一気に実行できます。例えるなら、家電のリモコンのような存在で、決まったボタンを押すと決まった動きをしてくれます。

2. artisanコマンドもテストが必要な理由

2. artisanコマンドもテストが必要な理由
2. artisanコマンドもテストが必要な理由

コマンドは人の目に見えにくいため、失敗に気づきにくい部分です。しかし、定期的に動かす処理や大切なデータを扱う場合、間違いがあると大きな問題になります。そこでテストを行い、正しいメッセージが表示されるか、処理が最後まで実行されるかを確認します。これは、機械を動かす前に試運転をするのと同じ考え方です。

3. Laravelでコマンドテストを行う基本方法

3. Laravelでコマンドテストを行う基本方法
3. Laravelでコマンドテストを行う基本方法

Laravelでは、テストの中からartisanコマンドを実行できます。特別な準備はほとんど必要なく、テスト用のメソッドを使うだけです。まずは、コマンドが問題なく実行できるかを確認します。下の例では、sample:helloというコマンドを実行しています。


public function test_artisan_command_runs()
{
    $this->artisan('sample:hello')
         ->assertExitCode(0);
}

4. コマンドの表示メッセージをテストする

4. コマンドの表示メッセージをテストする
4. コマンドの表示メッセージをテストする

artisanコマンドは、実行すると文字を表示することが多いです。その表示内容が正しいかどうかもテストできます。これは、レシートに正しい金額が印字されているかを確認するようなものです。決まった文章が出ているかを見ることで、安心して使えるようになります。


public function test_artisan_command_output()
{
    $this->artisan('sample:hello')
         ->expectsOutput('こんにちは')
         ->assertExitCode(0);
}

5. コマンドに引数を渡してテストする

5. コマンドに引数を渡してテストする
5. コマンドに引数を渡してテストする

artisanコマンドには、追加の情報を渡せる場合があります。これを引数と呼びます。たとえば、名前を指定してあいさつを変えるような仕組みです。テストでは、その引数が正しく使われているかを確認できます。これは、注文内容を変えても正しい料理が出てくるかを確かめる作業に似ています。


public function test_artisan_command_with_argument()
{
    $this->artisan('sample:greet', ['name' => '太郎'])
         ->expectsOutput('こんにちは、太郎さん')
         ->assertExitCode(0);
}

6. 確認質問があるコマンドのテスト

6. 確認質問があるコマンドのテスト
6. 確認質問があるコマンドのテスト

artisanコマンドの中には、「本当に実行しますか?」と聞いてくるものがあります。これを確認質問と呼びます。テストでは、自動で「はい」と答えた場合の動きを確認できます。人がボタンを押さなくても、正しく進むかを確認できる点が特徴です。


public function test_artisan_command_with_confirmation()
{
    $this->artisan('sample:confirm')
         ->expectsConfirmation('実行しますか?', 'yes')
         ->assertExitCode(0);
}

7. コマンド実行後の状態を確認する

7. コマンド実行後の状態を確認する
7. コマンド実行後の状態を確認する

コマンドは、表示だけでなくデータの変更を行うこともあります。そのため、実行後の状態を確認することも大切です。たとえば、データが追加されたかどうかを見ることで、処理が成功したかを判断します。これは、掃除が終わったあとに部屋が本当にきれいになっているかを見るのと同じです。


public function test_artisan_command_database_change()
{
    $this->artisan('sample:create-user');

    $this->assertDatabaseHas('users', [
        'name' => 'テストユーザー',
    ]);
}

8. 初心者が意識したいartisanテストのポイント

8. 初心者が意識したいartisanテストのポイント
8. 初心者が意識したいartisanテストのポイント

artisanコマンドのテストは、難しく見えても基本は同じです。実行できるか、正しい表示が出るか、結果が正しいかを順番に確認します。目に見えない処理ほど、テストで支えることが大切です。コマンドを安心して使えるようになると、Laravelでの作業がぐっと楽になります。

カテゴリの一覧へ
新着記事
New2
Symfony
Symfonyのコントローラで404・403エラーを制御する方法を初心者向けに解説!
New3
Symfony
Symfonyで独自イベント(カスタムイベント)を作成する方法をやさしく解説
New4
Laravel
Laravel Sailとは?初心者でもわかるDocker環境構築と使い方の基本
人気記事
No.2
Java&Spring記事人気No2
CodeIgniter
CodeIgniterのCSRF対策を完全解説!フォーム処理のセキュリティ手順
No.3
Java&Spring記事人気No3
Laravel
LaravelでReactコンポーネントを組み込む方法完全ガイド!JSX対応でフロントエンド連携を学ぼう
No.4
Java&Spring記事人気No4
Laravel
Laravelのリレーションを使った検索条件の書き方(whereHas)
No.5
Java&Spring記事人気No5
Symfony
Symfonyでバリデーションをコントローラに組み込む方法を徹底解説!初心者にもやさしい入力チェックの基本
No.6
Java&Spring記事人気No6
Laravel
LaravelのRESTfulコントローラ設計のベストプラクティスを初心者向けにわかりやすく解説
No.7
Java&Spring記事人気No7
Symfony
Symfonyのインストール方法!CLIとComposerの導入手順まとめ
No.8
Java&Spring記事人気No8
Laravel
Laravelのold()関数でフォーム再表示時に値を保持する方法