O objetivo desta tarefa é garantir a integridade e o correto funcionamento dos endpoints da API de veículos através de testes automatizados. Esta abordagem garante a estabilidade do código e previne regressões futuras.
Foram criados testes de integração no diretório tests/Feature/
para simular requisições HTTP e validar o comportamento da API, incluindo o uso da trait RefreshDatabase
para garantir um ambiente de teste limpo.
Uma classe de teste chamada VehicleApiTest.php
foi criada para cobrir todas as operações de CRUD. Métodos implementados e suas respectivas validações:
test_can_list_all_vehicles()
: Valida se o endpoint GET /api/vehicles
retorna o código de status 200 OK e um array vazio (quando não há dados no banco).test_can_create_a_vehicle()
: Testa a criação de um novo veículo. O método postJson
envia os dados, e a resposta é validada com 201 Created. O método assertDatabaseHas
garante que o registro foi salvo no banco.test_can_update_a_vehicle()
: Valida a atualização de um veículo existente. O teste usa a factory
para criar um registro temporário, envia a requisição putJson
e valida a resposta 200 OK e os dados atualizados.test_can_delete_a_vehicle()
: Testa a exclusão de um veículo. O método deleteJson
é usado, e a resposta esperada é 204 No Content. A validação assertDatabaseMissing
confirma que o registro foi removido do banco.PS C:\\softwares\\api-automotiva> ./vendor/bin/phpunit
PHPUnit 11.5.34 by Sebastian Bergmann and contributors.
Runtime: PHP 8.3.16
Configuration: C:\\softwares\\api-automotiva\\phpunit.xml
...... 6 / 6 (100%)
Time: 00:00.391, Memory: 40.00 MB
OK (6 tests, 11 assertions)
PS C:\\softwares\\api-automotiva>