Este arquivo contém exemplos práticos de como testar a API usando diferentes ferramentas.
Certifique-se de que a API está rodando:
docker compose up -dcurl http://localhost:1010/episode/naruto/1/1curl -s http://localhost:1010/episode/naruto/1/1 | jqcurl -i http://localhost:1010/episode/naruto/1/1curl --max-time 30 http://localhost:1010/episode/naruto/1/1curl http://localhost:1010/episode/naruto/1/1 -o response.jsonSe você tiver HTTPie instalado:
# Instalação
pip install httpie
# Teste básico
http GET http://localhost:1010/episode/naruto/1/1
# Com verbose
http -v GET http://localhost:1010/episode/naruto/1/1Use o script fornecido:
# Teste padrão (naruto temporada 1 episódio 1)
php test-api-example.php
# Teste personalizado
php test-api-example.php one-piece 1 5
# Outro exemplo
php test-api-example.php bleach 1 10composer test
# ou
./vendor/bin/phpunit
# ou
php bin/phpunit# Apenas testes de providers
./vendor/bin/phpunit tests/Unit/Providers/
# Apenas testes de support
./vendor/bin/phpunit tests/Unit/Support/
# Teste específico por nome
./vendor/bin/phpunit --filter testProvidersMustImplementsAllRequiredInterfaces./vendor/bin/phpunit --testdoxcomposer test:coverage
# ou
./vendor/bin/phpunit --coverage-html coverage/
# Abrir coverage/index.html no navegador# Entrar no container
docker compose exec app bash
# Rodar os testes
php bin/phpunit
# Testar a API de dentro do container
curl http://localhost:1010/episode/naruto/1/1# Verificar problemas
composer cs:check
# ou
./vendor/bin/php-cs-fixer fix --dry-run --diff
# Corrigir automaticamente
composer cs:fix
# ou
./vendor/bin/php-cs-fixer fixcurl -w "\nTempo total: %{time_total}s\n" http://localhost:1010/episode/naruto/1/1for i in {1..5}; do
echo "Requisição $i:"
time curl -s http://localhost:1010/episode/naruto/1/$i -o /dev/null
done# Naruto
curl http://localhost:1010/episode/naruto/1/1
# One Piece
curl http://localhost:1010/episode/one-piece/1/1
# Dragon Ball
curl http://localhost:1010/episode/dragon-ball/1/1
# Bleach
curl http://localhost:1010/episode/bleach/1/1Antes de fazer um commit, execute:
-
composer test- Todos os testes unitários passam -
composer cs:check- Código está formatado corretamente -
curl http://localhost:1010/episode/naruto/1/1- API responde corretamente - Testar com pelo menos 2 animes diferentes
- Verificar logs de erro (se houver)
# Verificar se o container está rodando
docker compose ps
# Ver logs
docker compose logs app
# Reiniciar containers
docker compose restart# Verificar porta
netstat -tuln | grep 1010
# Testar conexão local
curl http://127.0.0.1:1010/episode/naruto/1/1# Limpar cache
php bin/console cache:clear
# Reinstalar dependências
rm -rf vendor/
composer install
# Executar testes com verbose
./vendor/bin/phpunit --testdox --verbose{
"error": false,
"message": "Success",
"status": 200,
"data": [
{
"name": "Anime Fire",
"slug": "anime-fire",
"has_ads": false,
"is_embed": false,
"episodes": [
{
"error": false,
"searched_endpoint": "https://animefire.plus/video/naruto/1",
"episode": "https://example.com/video.mp4"
}
]
}
]
}{
"error": true,
"message": "Not Found",
"status": 404
}- Use jq para formatar JSON:
curl -s URL | jq - Salve respostas para debug:
curl URL -o debug.json - Use o script PHP para testes mais informativos
- Rode testes frequentemente durante o desenvolvimento
- Verifique cobertura para garantir que todo código está testado