Open7

LaravelでTDDチュートリアル

plaincode_jpplaincode_jp

初期の不要ファイル削除

rm -rf database/migrations/*.php
rm -rf tests/Unit/*.php
rm -rf tests/Feature/*.php

テストファイル作成

docker exec -it php php artisan make:test ReportTest

//test実行

docker exec -it php php vendor/bin/phpunit

//テストのメソッド名は、頭にtestをつける。またはメソッドコメントに @test アノテーションをつける

public function test_api_customersでGETでアクセスできる()
{
    $response->assertStatus(200);
}

// @test アノテーションをつけたとき
/**
* @test
*/
public function api_customersでGETでアクセスできる()
{
    $response->assertStatus(200);
}


plaincode_jpplaincode_jp

開発時にデータの干渉を避けるためテスト専用DBをつくる

DBコンテナのmysqlにログイン

docker exec -it mysql mysql -u root -p
// =>パスワードはdocker-composeに定義したのを入力

テスト用DB を作成

create database test_database;

テスト実行時に test_database を使うように src/phpunit.xml に追記する

<env name="QUEUE_DRIVER" value="sync"/>
+ <env name="DB_DATABASE" value="test_database"/>
plaincode_jpplaincode_jp

//2つのテーブルのマイグレーション、モデル、ファクトリの作成

docker exec -it php php artisan make:model Customer -f -m
docker exec -it php php artisan make:model Report -f -m
plaincode_jpplaincode_jp

doctrine/dbal でモデルのphpDocsを自動生成 *バージョンでエラー

必要なパッケージをインストール

docker-compose exec php composer require doctrine/dbal
docker-compose exec php composer require barryvdh/laravel-ide-helper