簡體   English   中英

測試 Laravel Flash 會話

[英]Test Laravel Flash Session

如何在 Laravel 中測試 Flash Session? 在我的測試用例中,我有兩條路線:

Route::get('/', function () {
    return view('welcome');
});

Route::get('/login', function () {
    return redirect("/")->with('mysession', 1);
});

我的測試是:

public function testBasicTest()
    {
        $response = $this->followingRedirects()->get('/login');
        $response->assertSessionHas('mysession');
        $response->assertStatus(200);
    }

此測試失敗並顯示錯誤: Session is missing expected key [mysession].

有誰知道如何測試這個簡單的設置?

我正在使用全新安裝的 Laravel 5.8

謝謝奧利弗

那是因為您正在檢查/請求的會話/響應,而不是/login本身。 get('/login')方法之前添加followingRedirects()將“跳過”該請求的響應到重定向的響應,因此您基本上是在檢查:

Route::get('/', function () {
    return view('welcome');
});

是否已閃爍會話密鑰。 這不是根據您的代碼在那里。

現在為了讓你的測試通過,你應該從鏈中刪除followingRedirects() 另請注意,您的第二個斷言將失敗,因為重定向狀態是302而不是200

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM