zobov
@zobov

Почему тест выводит 404?

Второй день бьюсь над проблемой тестов в Laravel 5.4. Любой путь выдает 404 ошибку. Толкового ничего не нагуглил.
Вообще, задача написать тесты для контроллера ApiController. Как сделать это по-правильному? Если можно, с примерами, заранее спасибо!

Исходные данные проблемы:
Проект на последнем 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.


При этом, страница localhost:8888/streaming_statistic/public открывается, поскольку прописан роут
Route::get('/', function () {
    return view('welcome');
});


Что я делаю не так?
  • Вопрос задан
  • 678 просмотров
Решения вопроса 1
zobov
@zobov Автор вопроса
Как оказалось, ему не нравилась env-переменная:
APP_URL=127.0.0.1:8888/streaming_statistic/public

Перенеся root к public и заменив на это, всё стало хорошо:
APP_URL=127.0.0.1:8888

Единственное, что мне осталось неясно - почему такое поведение?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы