Skip to content

Testing Backend - Portal API

Estrategia de Testing

Pirámide de Tests

  • Unit Tests (Muchos): >80% coverage
  • Integration Tests (Moderados): Tests con DB real
  • E2E Tests (Pocos): Flujos completos

Coverage objetivo: > 80%

Unit Tests

Ubicación

Tests unitarios en Tests/Unit/Portal/

Herramientas

  • PHPUnit
  • Mockery para mocks
  • Faker para datos de prueba

Componentes a Testear

Middleware:

  • PortalAuthMiddleware
    • Resolución de tenant por dominio
    • Autenticación de cliente
    • Bloqueos por intentos fallidos

Services:

  • ClientIdentificationService

    • Identificación de clientes
    • Creación de portal_client
    • Gestión de bloqueos
  • PortalCtaCteService

    • Consulta de deudas
    • Enriquecimiento de datos
    • Resumen de cuenta
  • CuponPagoService

    • Generación de cupones
    • Validación de códigos ITF
    • Listado con paginación
  • PaymentGatewayService

    • Creación de pagos
    • Procesamiento de webhooks
    • Validación de firmas

Controllers:

  • Validación de inputs
  • Respuestas HTTP correctas
  • Manejo de errores

Integration Tests

Ubicación

Tests/Integration/Portal/

Setup

  • Docker PostgreSQL para tests
  • Migraciones automáticas
  • Datos de prueba (fixtures)
  • Cleanup automático

Casos a Testear

  • Flujo completo de login
  • Consulta de deudas con DB real
  • Generación de cupones
  • Procesamiento de pagos

Comandos

Ejecutar tests:

bash
vendor/bin/phpunit Tests/Unit/Portal/
vendor/bin/phpunit Tests/Integration/Portal/

Coverage:

bash
vendor/bin/phpunit --coverage-html coverage/

Mejores Prácticas

  • Usar mocks para dependencies externas
  • Un assert por test cuando sea posible
  • Nombres descriptivos de tests
  • Setup y teardown apropiados
  • Tests independientes entre sí

Ver también