LaravelのPHPUnitでテスト自動化が便利すぎる件

Pocket

今回はLaravelのPHPUnitを使ってテストについて書いていきます!

経験の少ないエンジニアは業務の中で、テストを任されることが多いので参考になればと思います。

 

対象読者は以下を想定しています。

対象読者
  • テストって何するの?レベルの初学者
  • 業務でテストを任された現役エンジニア
  • LaravelのPHPUnitについて学習したい人

 

Web開発におけるテストについて

 

Web開発においてテストは品質を保証する上で非常に重要な工程になります。

テストのみを担当する「テスター」という職業が存在するほどですから、テストはWeb開発において重要な工程です。

 

テストは自動化する流れへ

テストは確実に自動化する流れに移っています。

理由は簡単で「工数をあまりテストに割きたくないから」が企業の本音でしょう。

 

短納期のアジャイル開発の場合は何度も開発プロセス(PDCA)を繰り返すため、テストを自動化して工数を削減すべきです。

 

また、短納期で高品質なサービスを保証するためにテスト自動化は必須になってきています。

 

LaravelではPHPUnitという自動テストツールが標準で用意されていますよね。

本当に便利なフレームワークです。

 

Laravelとテストについて

 

テストは「Unitテスト」「Featureテスト」があります。

前者は単体テスト、後者は結合(機能)テストと呼ばれることが多いですよね!

 

テストファイルはLaravelプロジェクト直下の「App/tests/Unit or Feature」にあります。

 

UnitテストとFeatureテストの違いをざっくりいうと、Unitテストはメソッドや関数ごとの単体をテストしますが、FeatureテストはURLごとの機能でテストをおこないます。

 

ユニットテストファイルを作成する

まずはテストファイルを作成しましょう!

下記コマンドを実行します。(unitテストを実行するときは末尾に–unitをつける)

 

Unitテスト(デフォルト)

 

デフォルトでは上記のようなコードが用意されています。

ExampleTestクラスはTestCaseを継承しており、デフォルトのassertTrueは引数がTrueかどうかをチェックするメソッドです。

 

実行したいテストはtestBasicTestクラス内に定義します!

 

一度、このままテストを実行してみます!

 

OK(3 tests, 2 asertions)と表示され、テストが成功したことを返却してくれます!

フューチャテストファイルを作成する

次に機能単位でテストするフューチャテストを作成します。

 

Featureテスト(デフォルト)

 

実行したいテストはユニットテストと同じくtestBasicTestクラス内に定義します!

 

$this->get(‘/’)では、GETメソッドでアクセスするレスポンス値を取得しています。

$response->assertStatus(200)では、テストに成功したらステータスコード(200)を返却する処理になります。

 

ミドルウェアを無効化する

テストをしていく中で認証エラー(401)でテストが中断しちゃうことがあります。

今はそこ(認証)じゃねえ!!ってイライラすることがあります。

 

こんな時はミドルウェアを無効化してからテストしましょう。

以下を追記してください。

ユニットテストファイルを作成する

 

これで、認証を一時的に無視してテストすることができます。

 

今回はテストの概要を簡単に説明しましたが、どんどん更新していきます!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA