Тест PHPUnit не выполняется для assertStatus (200) в моем проекте laravel - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть файл модульного теста со следующим методом тестирования

    <?php

namespace Tests\Unit;

use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;

class IndustryTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testURL()
    {
        $response = $this->get('admin/industry/index');

        $response->assertStatus(200);
    }
}

В моем файле routes/web.php есть следующий код:

Route::group(['middleware' => 'prevent-back-history'],function() {
    Route::group([ 'middleware' => 'admin'], function () {
       Route::get('admin/industry/index', 'IndustrymapController@industry_index');
    });
});

IndustrymapController.php имеетследующий код:

public function industry_index()
{
    //get all available industries
    $industries = DB::connection('mysql_company_masterdb')
        ->table('tbl_industry_type')
        ->whereNull('deleted_at')
        ->get();
    return View('admin.IndustryMaster.index')
        ->with('industries',$industries);
}

У меня есть файл вида внутри admin/IndustryMaster/index.php, который отлично работает в браузере.

Однако, когда я запускаю команду .\vendor\bin\phpunit в терминале, он даетследующая ошибка:

PHPUnit 7.5.1 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.1.12
Configuration: C:\xampp\htdocs\selfcomply\phpunit.xml

F                                                                   1 / 1 (100%)

Time: 294 ms, Memory: 14.00MB

There was 1 failure:

1) Tests\Unit\IndustryTest::testURL
Expected status code 200 but received 302.
Failed asserting that false is true.

C:\xampp\htdocs\selfcomply\vendor\laravel\framework\src\Illuminate\Foundation\Testing\TestResponse.php:78
C:\xampp\htdocs\selfcomply\tests\Unit\IndustryTest.php:21

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

Если мой код работает нормально в браузере, почему тест не пройден?Я думаю, что это как-то связано с URL, который я дал

$response = $this->get('admin/industry/index');

РЕДАКТИРОВАТЬ

Ниже приведен мой код в admin middleware

<?php

namespace App\Http\Middleware;

use Closure;
use Sentinel;

class SentinelAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(!Sentinel::check())
            return redirect('signin')->with('info', 'You must be logged in!');

        return $next($request);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...