LaravelでPHPUnitを使ってテストを自動化してみよう

Laravelとテスト

Laravelではテスト用のフレームワークとして、PHPUnitやPestが使えます。

本記事では、LaravelでのPHPUnitの基本の使い方を説明します。

Webアプリ開発にテストは必須です。

手動テストで十分なこともありますが、Webアプリによっては、テスト自体を自動化してしまうほうがラクなこともあります。

テストの自動化にご興味あれば、参考にしてください。

今回は超基本の使い方を説明します。

CRUDに即したテストの作り方を知りたい場合は、次回記事を参考にしてくださいね。

PHPUnitでは2つの方法でテストを書ける:FeatureとUnit

PHPUnitでは、UnitとFeatureという2つの種類のテストを実施できます。

まずはこの部分から説明していきます。

Unitテストは、あるクラスの特定のメソッドが、タスクを実行するかどうかを見たりする時に使えます。プログラマ目線のテストといえます。

一方Featureテストは、想定通りにWebアプリが動作するかを見ます。ユーザー目線のテストといえます。

テストファイルの場所とコマンド

次にPHPUnitのインストールについて説明します。

といっても、Laravel Breezeをインストールすると、PHPUnitはデフォルトで搭載されています。

Laravelのインストールについては、下記を参照してください。

上記ページ内の「Breezeのインストール」から、Laravel Breezeのインストール方法を解説しています。

Laravel Breezeインストールコマンド実行時にいくつか質問が表示されます。

3個目の質問で「PHPUnitの代わりにPestテストを入れますか?」と聞かれます。ここで「no」と入れると、PHPUnitがインストールされます。

【Laravel Breezeインストール時の質問】

インストール後のプロジェクトを見てみます。

【インストール後のプロジェクト内】

testsフォルダの中には、UnitとFeatureの2つのフォルダが入っています。テストのシナリオは、この中に入れていきます。

プロジェクトの中にはphpunit.xmlファイルというのがあります。ここには、テストでどのシナリオを使用するかを指定します。

ここまで基本ポイントを説明してきました。ここから先は、実際にテストを作ってみましょう。

ページ表示用のテストを作ってみる

今回はとりあえず「あるページにアクセスしたら問題なくページが表示されるか」というテストを、Featureを使って作ってみましょう。

①テスト作成

まずtestsの中に、テストファイルを作成します。

次のようにテスト作成用コマンドを実行します。

tests/Featureの中にTestフォルダができ、その中にFirstTestというテストファイルが作成できます。

②テストの作成

test/Feature/Test/FirstTest.phpファイルを開き、次のようにテスト用のコードを入力します。

【FirstTest.php】

これによって、トップページ(/) が無事に開けるかがテストできます。

$response->assertStatus(200);は、HTTPステータスが200であるかどうかを確認するコードです。HTTPステータスが200であれば、リクエストが無事サーバーで受理された状態ということになります。

③実行するテストの設定

次にプロジェクト直下にあるphpunit.xmlファイルを開きます。下記のようにコードを書き替えます。

【phpunit.xml】

これによってデフォルトで存在するテストは実行せず、今作成したtest/Testの中にあるテストのみを実行します。

デフォルトでは、tests/Featureの中にログイン等のテストが用意されています。どのテストを実行するかはお好みで変えてください。

④テスト実行

最後にテスト実行用コマンドを下記のとおり入力します。

無事にページが開ける場合には、次のような画面になります。

さいごに

今回はLaravelでPHPUnitを使ってテストを実施する基本の方法を解説しました。

ページが複数ある場合に、すべてのページが無事開けるかどうかを毎回手動で確認するのは大変です。今回お伝えしたような形でPHPUnitでテストを作ってしまえば、コマンドひとつで自動テストを実行できます。

ただ、実際の開発の現場では、より複雑なテストが必要になりますよね。次回以降は、CRUD処理をテストするためのPHPUnitコードについて解説していきます。

もっと詳しくPHPUnitの使い方が知りたいを思ったら、次回記事も参考にしてくださいね。

Laravelとテスト

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

 

Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
デプロイ講座付。StripeやChatGPT連携など過去10回分のセミナー動画視聴可能。

Laravel実践スキルをのばしたい方におすすめです。

ラボの案内を見てみる

Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました