2021年12月10日(金曜日)
PHPでの単体テストツール、PHPUnitについて勉強会を開催しました。
■概要
PHPUnitについて、Laravelでページや機能を作り、その中でテストを実施しました
■テストのコマンド
・全部実行:vender/bin/phpunit
→testsというフォルダに入っている
〜testというファイルがすべて実行される
・ファイル指定:vender/bin/phpunit 相対パス
→VScodeの拡張機能・Better PHPUnitを使うと、
開いているファイルに対して、
ショートカットキーで簡単に実行できる
■テスト実施
・テストファイルは他から呼び出されることがないという前提なので、
日本語での記述が一般的
・テストパターンが無数に存在するので、
テストケースは人によって変わる可能性がある
・一個一個のテストが終わった時に、RefreshDatabaseが走るので
テストの項目それぞれに影響を与えないようにできている
・テストシナリオを自分で作り、データも作ってテストを実行していく
・コントローラだけでなく、モデルにもテストを書いて実行できる
データを取得してきたときの形をチェックできる
・withoutExceptionHandling()
・・・エラーハンドリングされずにバグが表示される
・factory()
・・・キーと値を全部指定しなくても良くなる
・setTestNow()
・・・現在日時を想定でテストを行うことができる
テストで使う可能性が高い
■概要
PHPUnitについて、Laravelでページや機能を作り、その中でテストを実施しました
■テストのコマンド
・全部実行:vender/bin/phpunit
→testsというフォルダに入っている
〜testというファイルがすべて実行される
・ファイル指定:vender/bin/phpunit 相対パス
→VScodeの拡張機能・Better PHPUnitを使うと、
開いているファイルに対して、
ショートカットキーで簡単に実行できる
■テスト実施
・テストファイルは他から呼び出されることがないという前提なので、
日本語での記述が一般的
・テストパターンが無数に存在するので、
テストケースは人によって変わる可能性がある
・一個一個のテストが終わった時に、RefreshDatabaseが走るので
テストの項目それぞれに影響を与えないようにできている
・テストシナリオを自分で作り、データも作ってテストを実行していく
・コントローラだけでなく、モデルにもテストを書いて実行できる
データを取得してきたときの形をチェックできる
・withoutExceptionHandling()
・・・エラーハンドリングされずにバグが表示される
・factory()
・・・キーと値を全部指定しなくても良くなる
・setTestNow()
・・・現在日時を想定でテストを行うことができる
テストで使う可能性が高い