Laravel 5.4上的示例PHPUnit测试失败,带有404

时间:2017-02-12 15:32:42

标签: php testing laravel-5 phpunit laravel-5.4

我可以通过链接访问Laravel 5.4上的项目:localhost:8888 / streaming_statistic / public

我有一个测试:

<?php

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;

class ApiTest extends TestCase
{
    public function testBasicTest()
    {
        $response = $this->get('/');

        $response->assertStatus(200);
    }
}

我用命令

运行所有测试
./vendor/bin/phpunit

但结果是:

PHPUnit 5.7.13 by Sebastian Bergmann and contributors.

F                                                                   1 / 1 (100%)

Time: 222 ms, Memory: 12.25MB

There was 1 failure:

1) Tests\Feature\ApiTest::testBasicTest
Expected status code 200 but received 404.
Failed asserting that false is true.

/Applications/MAMP/htdocs/streaming_statistic/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php:56
/Applications/MAMP/htdocs/streaming_statistic/tests/Feature/ApiTest.php:16

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

我可以打开此页http://localhost:8888/streaming_statistic/public/ 我有一条路线:

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

我做错了什么? 在laravel中为控制器方法编写测试的正确方法是什么?可能是HTTP测试它不是最好的解决方案吗?

2 个答案:

答案 0 :(得分:15)

对于测试这个env变量是错误的......

APP_URL=http://127.0.0.1:8888/streaming_statistic/public

我将根网站服务器目录更改为streaming_statistic / public,将env更改为

APP_URL=http://127.0.0.1:8888

之后我得到了:

OK (1 test, 1 assertion)

答案 1 :(得分:0)

我在5个小时内锁定了相同的错误,最后,我找到了解决方法,

更改

中的APP_URL=http://localhost
  

.env.testing

文件

检查以下有关.env.testing文件的链接

refer here