Tests - IbenMG/GRUPO09-2025-PROYINF GitHub Wiki

Endpoints seleccionados para pruebas unitarias en el Hito 3

Código Test Gestor PDF

Código Test Buscador de fuentes

1. Endpoint: detalle_pdf

  • Ruta: /gestor_pdfs/detalle_pdf/<pdf_id>/
  • Funcionalidad: Muestra los detalles de un PDF publicado específico, filtrando para que solo sean accesibles los PDFs que están marcados como publicados.
  • Justificación:
    • Es un endpoint fundamental para la HU04, ya que representa la funcionalidad de acceso a un boletín o PDF finalizado y disponible en la web.
    • Verifica la correcta publicación automática y accesibilidad del contenido, asegurando que solo documentos publicados sean visibles, cumpliendo con el requisito de accesibilidad y seguridad.
    • Tiene un comportamiento claro: retorna 200 OK si el documento existe y está publicado, o 404 Not Found si no es así, permitiendo un testeo efectivo con casos positivos y negativos.

2. Endpoint: buscar_fuentes

  • Ruta: /buscador_fuentes/buscar_fuentes/?query=<texto>&etiqueta=<etiqueta>
  • Funcionalidad: Permite buscar recursos (fuentes) por nombre o etiquetas, mostrando resultados filtrados.
  • Justificación:
    • Es un endpoint que representa una funcionalidad clave de interacción del usuario con el sistema: la búsqueda y filtrado de contenidos relevantes.
    • Testear este endpoint ayuda a validar que el sistema maneje correctamente distintas entradas (búsqueda por nombre, por etiquetas, combinaciones, o búsqueda vacía), cubriendo casos funcionales y de borde.
    • Garantiza que los usuarios accedan a información útil y filtrada, mejorando la experiencia y cumpliendo con requerimientos funcionales de la plataforma.

Justificación endpoints

  • Cobertura funcional importante: Ambos endpoints cubren funcionalidades esenciales del sistema: acceso controlado a contenido publicado y búsqueda filtrada de recursos.
  • Escenarios positivos y negativos claros: Permiten diseñar pruebas con casos de éxito y manejo de errores, crucial para verificar robustez y calidad.
  • Representatividad: Son representativos de distintos tipos de interacciones: consulta detallada (detalle_pdf) y búsqueda/listado (buscar_fuentes), mostrando diversidad en los tests.
  • Facilidad para aplicar clases de equivalencia y valores frontera: Por ejemplo, en el detalle_pdf: documento existe o no, publicado o no; en búsqueda: término válido, término vacío, término inexistente.

Clases de equivalencia y valores frontera para los casos de prueba


1. Endpoint detalle_pdf

Clases de equivalencia (CE):

Clase Descripción
CE1 (válida) ID de PDF válido y PDF publicado (debe mostrarse)
CE2 (inválida) ID de PDF válido pero PDF no publicado (no debe mostrarse)

Valores frontera (VF):

Valor frontera Ejemplo
VF1 ID mínimo válido (por ejemplo, 1)
VF2 ID máximo válido (último PDF creado)

2. Endpoint buscar_fuentes

Clases de equivalencia (CE):

Clase Descripción
CE1 (válida) Consulta con término o etiqueta existente (debe devolver resultados)
CE2 (válida) Consulta con término o etiqueta vacía (debe devolver todos o ninguno, según diseño)
CE3 (inválida) Consulta con término o etiqueta que no existe (debe devolver lista vacía)

Valores frontera (VF):

Valor frontera Ejemplo
VF1 Consulta con un solo carácter (ej: "a")
VF2 Consulta con texto muy largo o especial (ej: cadena de 256 caracteres)
VF3 Consulta con caracteres no alfanuméricos (ej: @#$%^)

Ejemplo de casos de prueba usando CE y VF

Caso Endpoint Input CE VF Resultado esperado
1 detalle_pdf ID=1 (PDF publicado) CE1 VF1 HTTP 200, muestra PDF
2 detalle_pdf ID válido pero no publicado CE2 N/A HTTP 404, acceso no permitido
3 buscar_fuentes query="importante" CE1 N/A HTTP 200, lista con resultados
4 buscar_fuentes query="" (vacío) CE2 N/A HTTP 200, lista vacía o todos
5 buscar_fuentes query="zzzxyz" (no existe) CE3 N/A HTTP 200, lista vacía
⚠️ **GitHub.com Fallback** ⚠️