A Laravel テスト - user000422/0 GitHub Wiki
PHP Unit
最初から導入済み。
パス | 説明 |
---|---|
projext/phpunit.xml | PHPUnit設定ファイル。 |
projext/tests/Feature | PHPUnit実行フォルダ。リクエスト単位のテスト。 |
projext/tests/Unit | PHPUnit実行フォルダ。メソッド単位のテスト。 |
■実行
# ファイル個別に実行
php artisan test tests/Feature/SampleTest.php
# すべて実行
php artisan test
■テストクラス作成 テストケースのクラス名は末尾が「Test」であること。
# テストクラスの作成(Feature配下)
php artisan make:test SampleTest
# テストクラスの作成(Unit配下)
php artisan make:test SampleTest --unit
setup
/**
* setup
*/
protected function setUp(): void
{
parent::setUp(); // これが必須
}
テストクラス
■テストクラス ここではアノテーションに「@test」の設定前提で進める。 アノテーションに「@test」を設定することでメソッド名の先頭に「test」を付ける必要がなくなる。
/*
* @test
*/
public funtion example() {
// 結果判定(真偽値)
$this->assertTrue(true);
// 結果判定(一致)
$this->assertEquals($str1, $str2);
}
■APIテスト
/*
* @test
*/
public funtion example() {
// GET
$response = $this->getJson('/api/users');
// テスト HTTPステータスコード
$response->assertStatus(200);
}
■アクセストークンが必要な場合のテスト
/*
* @test
*/
public funtion example() {
$response = $this->postJson('/api/login', [
'email' => '[email protected]',
'password' => 'password',
]);
$this->accessToken = $response->json('access_token');
}