Laravel PHPunit 重定向到本地主机

Posted

技术标签:

【中文标题】Laravel PHPunit 重定向到本地主机【英文标题】:Laravel PHPunit redirect to localhost 【发布时间】:2021-07-28 18:26:19 【问题描述】:

我正在尝试使用actingAs (Laravel 5.8) 登录我的测试,但它似乎没有做太多,因为它不断将我重定向到本地主机。不知道它是从哪里得到的,因为我没有重定向到任何地方的本地主机,它至少应该重定向到我的应用程序 url?

 public function testCategoriesIndex()

    $response = $this->actingAs($this->superAdminUser)
                        ->withSession(['companyId' => $this->testCompany->id])
                        ->get(url("/$this->routePrefix/categories$this->urlParameters"));       

    dd($response->content());
    
    $response->assertStatus(200);

输出

<!DOCTYPE html>\n
<html>\n
    <head>\n
        <meta charset="UTF-8" />\n
        <meta http-equiv="refresh" content="0;url='http://localhost/login'" />\n
\n
        <title>Redirecting to http://localhost/login</title>\n
    </head>\n
    <body>\n
        Redirecting to <a href="http://localhost/login">http://localhost/login</a>.\n
    </body>\n
</html>

文档也没有提到任何关于这些东西的任何内容,还不如空着...... https://laravel.com/docs/5.8/testing

【问题讨论】:

【参考方案1】:

你可以让 phpUnit 跟随重定向:

Laravel >= 5.5.19:

$this-&gt;followingRedirects();

Laravel

$this-&gt;followRedirects();

用法:

$response = $this->followingRedirects()

->post('/login', ['email' => 'john@example.com'])

->assertStatus(200);

注意:这需要为每个请求明确设置。

【讨论】:

以上是关于Laravel PHPunit 重定向到本地主机的主要内容,如果未能解决你的问题,请参考以下文章

Apache 2.4 将本地虚拟主机重定向到 https 而不是 http

XAMPP 忽略文档根目录;重定向到“本地主机/仪表板”

Laravel 5 如何测试重定向

Laravel PHPUnit:如何测试 url 前缀

虚拟主机被重定向到本地主机

设置laravel重定向到xampp