У меня есть файл модульного теста со следующим методом тестирования
<?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);
}
}