Laravel には URL を取得する関数がいくつかあります: (1) url()->current()(2)request()->url()
どちらも同じソースを使用しています。
phpunitの場合、テストは構成からそこにデータを設定しています
config('app.url')
config は.envrecordからデータを取得していますAPP_URL。
したがって、いくつかのオプションがあります
1)
ファイルまたはファイルに設定APP_URLする- どちらの場合も、値は単体テストでのみ使用されます。.envphpunit.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()
「しかし」はありません。