1
在Laravel功能測試中,我試圖在會話中存儲變量,以便在餘下的測試中使用它,如下所示:在Laravel的單元/功能測試中存儲和檢索會話變量
public function testLogin()
{
$response = $this->json('POST', '/login', $myCredentials);
$response
->assertStatus(200)
->assertJson([
'token' => true
]);
session(['token' => $response['token']]);
}
當我運行在命令行「PHPUnit的」,我得到這個錯誤:
PHP Fatal error: Uncaught ReflectionException: Class session does not exist in /vendor/laravel/framework/src/Illuminate/Container/Container.php:752
顯然,「會議()」全球幫手不在測試類的工作。我還試圖直接使用「Illuminate \ Session」或「\ Session」與班級合作,但都返回「找不到」錯誤。如何在測試類中存儲和檢索會話變量?
我試圖做的是從我的第一個請求獲得令牌變量,那麼它存儲在多個類使用它在多個方法。我不知道如何用withSession()方法來實現這一點,因爲我需要的會呈現遞歸問題:「$ this-> withSession(['token'=> session('token')]」或者我試圖避免不必要的HTTP請求 – americanknight
我想我可以在主測試類中得到它一次,然後將其擴展到其他類,這樣我就不需要在每個類上檢索標記了, t需要依賴會話。 – americanknight
在大多數情況下,我都這樣做,併爲所有初始化創建一個主類。 – Stony