У меня есть тестовый файл в каталоге tests / Feature со следующим содержимым:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
class UserTest extends TestCase
{
public function testA()
{
$response = $this->actingAs(\App\AdminUser::find(1))
->json('GET', '/users');
$response->assertStatus(200);
}
public function testB()
{
$response = $this->actingAs(\App\AdminUser::find(1))
->json('GET', '/users');
$response->assertStatus(200);
}
}
Проблема заключается в том, что при выполнении обоих тестов утверждение во втором завершается неудачно со следующей ошибкой: Expected status code 200 but received 403.
- Laravel по какой-то причине выбрасывает AccessDeniedHttpException
.
Если я закомментирую один из методов тестирования, то будет работать другой.
Любые идеи будут высоко оценены.
--- Edit ---
Вот что в методе контроллера:
public function index() {
return view('users.index');
}
И определение в файле маршрутов:
Route::group(['prefix' => 'users', 'as' => 'users.'], function () {
Route::get('/', ['as' => 'index', 'uses' => 'UserController@index']);
Route::get('datatables', ['as' => 'datatables', 'uses' => 'UserController@datatables']);
Route::get('show/{id}', ['as' => 'show', 'uses' => 'UserController@index']);
});
--- Edit2 --- Оказывается, это проблема с пакетом, который я использую.Дополнительная информация: https://github.com/JosephSilber/bouncer/issues/306