Тестирование контроллеров в Laravel: подробное руководство с примерами кода

Выполнение тестов в контроллере — обычная практика в Laravel, позволяющая убедиться, что конечные точки вашего приложения и логика контроллера работают правильно. В этой статье блога мы рассмотрим несколько методов запуска тестов в контроллере с использованием среды тестирования Laravel.

  1. Метод 1: использование метода actingAs

    public function testUserController()
    {
       // Authenticate a user
       $user = User::factory()->create();
       $this->actingAs($user);
       // Make a request to the UserController
       $response = $this->get('/user');
       // Assert the response
       $response->assertStatus(200);
    }
  2. Метод 2: использование метода call

    public function testUserController()
    {
       // Make a request to the UserController
       $response = $this->call('GET', '/user');
       // Assert the response
       $this->assertEquals(200, $response->getStatusCode());
    }
  3. Метод 3: использование метода json

    public function testUserController()
    {
       // Make a request to the UserController
       $response = $this->json('GET', '/user');
       // Assert the response
       $response->assertStatus(200);
    }
  4. Метод 4. Использование метода post

    public function testUserController()
    {
       // Make a POST request to the UserController
       $response = $this->post('/user', ['name' => 'John Doe']);
       // Assert the response
       $response->assertStatus(201);
    }
  5. Метод 5: использование метода put

    public function testUserController()
    {
       // Make a PUT request to the UserController
       $response = $this->put('/user/1', ['name' => 'Jane Doe']);
       // Assert the response
       $response->assertStatus(200);
    }
  6. Метод 6: использование метода delete

    public function testUserController()
    {
       // Make a DELETE request to the UserController
       $response = $this->delete('/user/1');
       // Assert the response
       $response->assertStatus(204);
    }

Это всего лишь несколько примеров методов, которые вы можете использовать для запуска тестов в контроллере с помощью Laravel. В зависимости от потребностей вашего приложения вы можете выбрать подходящий метод для эффективного тестирования контроллеров.