【PHP】Laravelにおけるテスト手順、勉強メモ
こんばんは、けこです。
今日は先日作ったsailによるLaravel環境のテストを試してみました!
php artisan
互換のコマンドがsailで使えるのはありがたい!せっかくなので今回はsailコマンドで進めていきます。
前提
docker基本知識、下記リンクのOS別Laravel導入を終えていること。
~/.zshrc にエイリアスを記載済み
alias sail="./vendor/bin/sail"
テスト実行
sail test
でプロジェクトのtestsフォルダ内のFeature, Unitフォルダにあるテストメソッドを実行可能。php artisan test
でも可。
testファイルの作り方
{プロジェクト名}/tests/Feature/UserTest.php
を作る場合、削除する場合は手動で対応しましょう。
sail artisan make:test UserTest
このようなコードが生成されるので、getメソッドの引数/
を/user
に変更します。
<?php namespace Tests\Feature; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; use Tests\TestCase; class UserTest extends TestCase { /** * A basic feature test example. * * @return void */ public function test_example() { #$response = $this->get('/'); 削除 $response = $this->get('/user'); $response->assertStatus(200); } }
/userというルーティングは作られていないので失敗してしまいます。
ルーティングを加えて成功させる
/routes/web.php
に/userへのルーティングを追記、今回はルーティングのみの検証ということでviewは省略。
<?php use Illuminate\Support\Facades\Route; /* コメント略 */ Route::get('/', function () { return view('welcome'); }); Route::get('/user', function () { return 'user page'; });
再実行
sail test
無事成功、テストを作る時に必要なコーディングのほとんどを自動生成してくれるのでとても楽ですね!
最後
本日は以上となります、APIの値の検証やViewのテストなどもっと深掘りできると思うのでおいおい勉強してまとめていきます!