Laravel には URL を取得する関数がいくつかあります: (1) url()->current()
(2)request()->url()
どちらも同じソースを使用しています。
phpunitの場合、テストは構成からそこにデータを設定しています
config('app.url')
config は.env
recordからデータを取得していますAPP_URL
。
したがって、いくつかのオプションがあります
1)
ファイルまたはファイルに設定APP_URL
する- どちらの場合も、値は単体テストでのみ使用されます。.env
phpunit.xml
ただし、すべての単体テストに対して URL は 1 つしかありません。
2)
実行時に設定しますが、関数のAPP_URL
前にそれを行う必要がありますsetUp()
Tests\TestCase
public function setUp(): void
{
$_ENV['APP_URL'] = 'example.com';
parent::setUp();
}
すべての初期化は関数に隠されているため、setUp
使用できません
config()->set('app.url',...
。それ以前parent::setUp();
では早すぎ、それ以降では遅すぎます。
ただし、ユニット テスト ファイルごとに 1 つの URL しかありません。
3)
request()->headers->set('HOST', 'example.com');
関数の後のどこにでも設定できsetUp()
、上書きさ.env
れますconfig()
「しかし」はありません。