Laravel

PHPUnitでテストを省略・スキップする方法【PHP・Laravel】

PHPUnitでテストを省略・スキップする方法【PHP・Laravel】

今回はPHPUnitでテストを省略・スキップする方法をご紹介します。

少しでも参考になれば幸いです。

 

バージョン情報
  • PHP:7.3.23
  • Laravel:8.0

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));
    }
}

 

実際に実行してみます。

テストを実行してスキップできていることを確認

 

テストがスキップされていることが確認できました。

 

参考記事

PHPUnit テストの省略

COMMENT

メールアドレスが公開されることはありません。

CAPTCHA