Larevel 7.x で自動テストをするための予備知識メモ
わからないなりに調べたことを備忘録として残します。
▼ 現時点の理解度はこんなもん
- Laravel の処理は追えるようになったぐらい。でも自動テストはよくわからない
- Laravel にはPHPUnit が入っているらしい。ということでPHPUnit の公式ドキュメントを読みつつ実行してみた
- アノテーションやデータプロバイダの使い方はなんとなくわかった
FeatureTest と UnitTest の違い
- FeatureTest :コードの幅広い範囲が対象。1つのHTTP リクエスト単位の動きをテストするイメージ。
- UnitTest :クラスが対象。クラス内のメソッドひとつひとつに対応するテストを書くイメージ。
コマンド
テストファイル生成
テストファイル生成
「UserTest」というクラスを作りたい場合のコマンドです。
# Feature ディレクトリにテストを生成する
php artisan make:test UserTest
# Unit ディレクトリにテストを生成する
php artisan make:test UserTest --unit
DB マイグレーション生成
生成されたマイグレーションは database/migrations/
配下に置かれます。
※ まだアウトプットできるほど理解が深まっていないので、公式ドキュメントのリンクを貼っておきます
データベース:マイグレーション 7.x Laravel
DB マイグレーション実行
# .env.testing のenv ファイルを読むためのオプションを付けている
php artisan migrate --env=testing
Seeder 作成
「TestSeeder」というSeeder クラスを生成したい場合のコマンドです。
生成されたSeeder クラスは database/seeds/
配下に置かれます。
php artisan make:seeder TestSeeder
生成されたSeeder クラス内で投入したいテストデータを定義します。
Composer のオートローダ再生成
ファイルを追加・変更した場合に自動読み込みをし直すため、実行します。
composer dump-autoload
テスト用データ生成 (Seeder の実行)
データベースに初期値を入れるため、Seeder を実行します。
# 「TestSeeder」を個別に実行したい場合のオプションを付けている
php artisan db:seed --class=TestSeeder
キャッシュクリア関連
テスト実行前にやっておきます。
API の場合は以下のみで問題なし。ビューを使っている場合はビュー系のクリアコマンドもやった方がいいかも ( view:clear
)
# コンパイルされたクラスファイルを削除する
php artisan clear-compiled
# フレームワークのブートストラップファイルをキャッシュする
php artisan optimize
# キャッシュファイルを作成して設定の読み込みを高速化
php artisan config:cache
テストファイル実行コマンド
「UserTest」というクラスを実行したい場合のコマンドです。
# .env.testing のenv ファイルを読むためのオプションを付けている
php artisan test --env=testing tests/Feature/UserTest
[おまけ] artisan コマンドが思い出せないとき
# 一覧を表示
php artisan list | less
# 一覧を表示
php artisan list | less
help [調べたいコマンド]
でくわしく調べることもできます。
# [make:migration] を調べたい場合
php artisan help make:migration
くりかえし読み返すリスト
-
【初心者向け】テストコードの方針を考える(何をテストすべきか?どんなテストを書くべきか?) - Qiita
:テストコードの方針を見失いかけたら読む
-
PHPUnit マニュアル — PHPUnit latest Manual:PHP Unit の使い方がわからなくなったら読む
-
テスト: テストの準備 7.x Laravel:Laravel 公式
-
データベース:シーディング 7.x Laravel:Laravel 公式
-
モック 7.x Laravel:Laravel 公式。モックのことを何もわかっていないので後でじっくり読む
-
Laravel キャッシュクリア系コマンドなど - Qiita:今回記載したキャッシュクリアコマンドでなんとかならない場合に読む
Author And Source
この問題について(Larevel 7.x で自動テストをするための予備知識メモ), 我々は、より多くの情報をここで見つけました https://qiita.com/kanadeee/items/71a9fed2427d19199cb4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .