【问题标题】:Laravel PHPUnit: how to test url prefixLaravel PHPUnit:如何测试 url 前缀
【发布时间】:2015-11-10 09:11:02
【问题描述】:

我正在学习构建一些 PHPUnit 测试。当不使用前缀时,我的应用程序会重定向到默认语言,例如: www.myapp.com 有 301 重定向到 www.myapp.com/en,而 www.myapp.com/en 有 200 OK。

试图对我的控制器进行测试,我有以下代码

    $response = $this->action('GET', 'HomeController@index');
    $this->assertEquals(200, $response->getStatusCode());

响应为 301(由于此语言前缀检查)。如何使用前缀测试这些控制器?谢谢

【问题讨论】:

  • 你使用的是什么版本的 Laravel?

标签: laravel laravel-5 phpunit laravel-testing


【解决方案1】:

尝试将此属性添加到您的 tests/TestCase.php 文件中。

// The base URL to use while testing the application.
protected $baseUrl = 'http://localhost/en';

【讨论】:

  • 值得注意的是,这只适用于 Laravel 5.4 之前的版本。请参阅下面@Moppo 的回答。
【解决方案2】:

从 Laravel 5.4 开始,$baseUrl 方法不再起作用

您可以在测试中动态设置自定义根 URL:

\URL::forceRootUrl('http://www.myapp.com/en');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-05
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 2019-11-01
    • 2018-10-23
    相关资源
    最近更新 更多