今回はPHPUnitでテストを省略・スキップする方法をご紹介します。
少しでも参考になれば幸いです。
バージョン情報
- PHP:7.3.23
- Laravel:8.0
Sponsored Link
PHPUnitでテストを省略・スキップする方法を紹介
結論から言うと、PHPUnitでテストをスキップ・省略するには、markTestSkippedメソッドを使います。
実際の例で確認しましょう。
この例では、一番最後のテストにmarkTestSkippedを指定しています。
引数に指定してあるのは、スキップの理由を示すメッセージです。任意のメッセージを指定するようにしましょう。
<?php
namespace Tests\Http\Controllers;
use App\Http\Controllers\MainController;
use App\Models\Expense;
use App\Models\User;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Tests\TestCase;
class MainControllerTest extends TestCase
{
use DatabaseTransactions;
private $user;
public function setUp(): void
{
parent::setUp();
$this->user = User::factory()->create([
'name' => 'laravelkun'
]);
}
/** @test */
public function indexはメイン画面を表示する()
{
$this->actingAs($this->user)->get('/main')
->assertViewIs('layouts.main');
}
/** @test */
public function destroyで指定した支出項目を削除できる()
{
$this->markTestSkipped('不要な処理なのでスキップします');
$expense = Expense::factory()->create();
$this->actingAs($this->user)->delete(action([MainController::class, 'destroy'], [
'param' => 'e',
'id' => $expense->id
]));
$this->assertNull(Expense::find($expense->id));
}
}
実際に実行してみます。
テストがスキップされていることが確認できました。
