Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Example PHPUnit Test on Laravel 5.4 fails with 404

I can my project on Laravel 5.4 from link: localhost:8888/streaming_statistic/public

I have a test:

<?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);
    }
}

I run all tests with command

./vendor/bin/phpunit

But result is:

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.

I can open this page http://localhost:8888/streaming_statistic/public/ I have an route:

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

What i am doing wrong? And what the right way to write tests for controller methods in laravel? May be the HTTP tests it not the best solution for them?

like image 862
Daniil Zobov Avatar asked Feb 12 '17 15:02

Daniil Zobov


1 Answers

for tests this env variable was wrong...

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

I changed root web server directory to streaming_statistic/public and env to

APP_URL=http://127.0.0.1:8888

After that i got:

OK (1 test, 1 assertion)
like image 137
Daniil Zobov Avatar answered Nov 11 '22 07:11

Daniil Zobov