UnitTest/Laravel5.xから6.xへ変更 | Method ‘XXXX’ is not compatible with method ‘Tests\TestCase::setUp()’.intelephense(1038)

Laravel5.xから6.x へバージョン変更した際に発生したUnitテストのError対処法です。

1. Errorメッセージ

Method 'XXXX' is not compatible with method 'Tests\TestCase::setUp()'.intelephense(1038)

2. Error箇所

    public function setUp(){ // ここでError
        parent::setUp();
    }

3. Errorの意味

'Tests\TestCase::setUp()'と互換性がありません。

どういうことでしょうか?

setUp関数は、use Tests\TestCase; クラスから参照されています。(正確には、更に継承先ののvendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php

ここで記述されている setUp関数を確認すると。

    protected function setUp(): void
    {
         //省略
    }

返り値 void が必須になっています。

4. 修正方法

    public function setUp(): void{ // 返り値を継承先に合わせる
        parent::setUp();
    }

setUp()関数の返り値の型を継承先に合わせてあげます。

これで解決します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です