概要
- laravelのunitテストにて
config()
関数を用いているコードのテストを実行するとconfigクラスが存在しない旨のエラーが出るので解消方法をまとめる。
エラー内容
Target class [config] does not exist.
解消方法
-
当該のテストコードを開く
-
下記のように
CreatesApplication
トレイトをテストクラスの外で名前解決、テストクラス内でuse宣言、setUp()関数を用意して$this->createApplication()
を実行する。FooTest.php<?php namespace Tests\Unit; use PHPUnit\Framework\TestCase; use Mockery; use Tests\CreatesApplication; class FooTest extends TestCase { use CreatesApplication; public function setUp(): void { parent::setUp(); $this->createApplication(); } }
PHPUnitのunitテストのライフサイクルはlaravelの外で行われていることが原因かな・・?