Тестирование JSON API маршрутов в Laravel, защищенных Bearer-токенами, можно осуществить с использованием фреймворка для тестирования PhpUnit. Ниже я представлю общепринятый способ такого тестирования.
Перед началом тестирования нужно создать тестовую базу данных для Laravel. Для этого вам нужно выполнить следующие шаги:
1. В файле ".env" в корневой папке вашего проекта установите настройки базы данных тестового окружения:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=test_database DB_USERNAME=root DB_PASSWORD=
2. Создайте базу данных, указанную в настройках, используя вашу систему управления базами данных или команду php artisan db:create
.
Перейдем к подробному описанию способа тестирования защищенных Bearer-токенами JSON API маршрутов в Laravel:
1. Создайте новый тестовый класс, например, ApiTest
, в папке tests/Feature
. Этот класс будет содержать в себе все необходимые тесты.
2. В методе setUp
тестового класса установите настройки для базы данных, создайте фабрику пользователей и мигрируйте базу данных:
protected function setUp(): void { parent::setUp(); $this->artisan('migrate'); }
3. Объявите необходимые зависимости в свойстве protected
, например, $user
и $token
, которые будут представлять пользователя и его Bearer-токен:
protected $user; protected $token;
4. Создайте метод testLogin
, который будет использоваться для авторизации пользователя и получения Bearer-токена:
public function testLogin() { $user = factory(User::class)->create([ 'email' => '[email protected]', 'password' => Hash::make('password') ]); $response = $this->json('POST', '/api/login', [ 'email' => $user->email, 'password' => 'password' ]); $this->token = $response->json('token'); $this->user = $user; }
5. Создайте остальные методы для тестирования ваших JSON API маршрутов, например, testApiRoute
, в которых используйте Bearer-токен:
public function testApiRoute() { $response = $this->withHeader('Authorization', 'Bearer ' . $this->token) ->json('GET', '/api/route'); $response->assertStatus(200); }
6. Запустите ваши тесты с помощью команды phpunit
. В результате вы должны увидеть успешное выполнение тестов.
В итоге, вы получите подробный обзор работы ваших JSON API маршрутов, защищенных Bearer-токенами, и сможете легко отследить возможные проблемы.