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()関数の返り値の型を継承先に合わせてあげます。
これで解決します。