代码之家  ›  专栏  ›  技术社区  ›  Fredrik

测试laravel中预期()方法中使用的she会话设置

  •  0
  • Fredrik  · 技术社区  · 6 年前

    Laravel有 intended() -用于在登录后重定向用户的方法。它使用会话密钥 url.intended ,请 as seen here . 然而,当测试它时,似乎不起作用。我将会话设置如下: session(['url.intended' => url()->previous()]);

    然后,我将通过以下方式测试会话:

    $this->app['session']->setPreviousUrl('some-url');
    
    $response = $this->get(route('login'));
    $response->assertSuccessful();
    $response->assertSessionHas('url', 'some-url'); //fails
    $response->assertSessionHas(['url' => ['intended' => 'some-url']]);  //fails
    

    当不使用点表示法作为键时,它是有效的。也就是说,我可以用键断言会话 urlIntended 存在。

    我该怎么办?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Fredrik    6 年前

    我刚刚意识到使用 intended() -方法实际返回并移除会话,因为它正在使用 Pull() .

    以下是它的具体用法: $path = $this->session->pull('url.intended', $default);