Laravelのテストについて
Laravelでテストコードを記述するには主に以下の2つの方法がある。
- PHP Unitを利用する
- PHPの代表的なテストフレームワーク
- Laravel Duskを利用する
- ブラウザを使った自動操作によるテストが可能(初耳。覚えておこう。)
今回は業務でも使っているPHP Unitを利用したテストを学習していきます。
PHP Unit
テストコードファイルは以下のartisanコマンドで作成可能
artisan make:test 作成したいテストファイル名
コマンドを打ち込むと、デフォルトで以下のテストが作成されます。
- フィーチャーテスト:tests/Feature/ExampleTest.php
- ユニットテスト:tests/Unit/ExampleTest.php
デフォルトのフィーチャーテストを深掘り
HTTPステータスコードが200であることを確認するテストコードが既に記載済みです。
$response = $this->get('/');
の箇所でどんな情報を変数$response
に入れているのかを見てみましょう、
以下のように編集します。
class HomeTest extends TestCase
{
/**
* A basic feature test example.
*
* @return void
*/
// テストメソッド(関数)名の先頭には「test」を付けること
public function test_example()
{
$response = $this->get('/');
// dump出力した後、ここで処理が終了。お手軽デバッグ法。
dd($response);
$response->assertStatus(200);
}
}
長いので割愛しますが、$response
の中には「GETやPOSTメソッドでURLと合わせて送られてきた様々なデータ」や「URLやHTTP動詞などの通信情報」が入っています。
この情報からステータスコードが200かどうかをassertStatus
メソッドで探すのですね( ͡° ͜ʖ ͡°)
さいごに
ちょいちょい編集して、自分自身も何度も見返していきたいようなものに仕上げます。
一緒にLaravelマスター目指しましょう。