Skip to content

test: agregar tests de GUI con mocks de tkinter - #48

Merged
jandrescodes merged 1 commit into
devfrom
feature/testing-gui
Nov 28, 2025
Merged

test: agregar tests de GUI con mocks de tkinter#48
jandrescodes merged 1 commit into
devfrom
feature/testing-gui

Conversation

@jandrescodes

Copy link
Copy Markdown
Contributor

📋 Descripción

Este PR implementa el testing manual completo de la interfaz gráfica de la calculadora y agrega tests automatizados mediante el archivo test_gui_calculator.py. Se han probado todas las funcionalidades de la GUI incluyendo operaciones básicas, decimales, funciones científicas y manejo de errores.

Cambios principales:

  • ✅ Creación de archivo test_gui_calculator.py con tests automatizados usando pytest
  • ✅ Creación de archivo conftest.py con fixtures para sustituir componentes gráficos de Tkinter por dummies
  • ✅ Testing manual exhaustivo de toda la funcionalidad GUI
  • ✅ Pruebas de operaciones básicas (suma, resta, multiplicación, división, potencia)
  • ✅ Pruebas con números decimales
  • ✅ Pruebas de funciones científicas (abs, max, min)
  • ✅ Verificación de manejo de errores (división por cero, inputs inválidos)
  • ✅ Documentación de casos de prueba ejecutados

🔗 Issue Relacionado

Related to #23


🎯 Tipo de Cambio

  • 🐛 Bug fix (corrección de error)
  • ✨ Nueva funcionalidad
  • 📝 Mejora de documentación
  • ♻️ Refactoring (sin cambios de funcionalidad)
  • 🧪 Tests (agregar o mejorar tests)
  • 🎨 Estilo (formateo, nombres de variables)
  • 🚀 Release (preparación para release)

🧪 ¿Cómo se ha probado?

  • Tests unitarios
  • Prueba manual
  • Probado en diferentes sistemas operativos

Comandos ejecutados:

# Ejecutar la aplicación GUI
python gui. py

# Ejecutar tests automatizados
pytest test_gui_calculator.py -v

# Ejecutar todos los tests del proyecto
python -m pytest -v

Casos de prueba manuales ejecutados:

Operaciones básicas:

  • ✅ Suma: 5 + 3 = 8
  • ✅ Resta: 10 - 4 = 6
  • ✅ Multiplicación: 7 * 6 = 42
  • ✅ División: 15 / 3 = 5
  • ✅ Potencia: 2 ^ 3 = 8

Operaciones con decimales:

  • 5.5 + 2.3 = 7.8
  • 10.5 / 2 = 5.25
  • ✅ Solo un punto decimal por número

Funciones científicas:

  • ✅ Valor absoluto: abs(-5) = 5
  • ✅ Máximo: max(10, 20) = 20
  • ✅ Mínimo: min(10, 20) = 10

Manejo de errores:

  • ✅ División por cero muestra error
  • ✅ No crashea con inputs inválidos
  • ✅ Mensajes de error claros

Flujos de usuario:

  • ✅ Operaciones consecutivas funcionan correctamente
  • ✅ Botón Clear resetea apropiadamente
  • ✅ Display se actualiza correctamente

✅ Checklist

  • Mi código sigue las convenciones del proyecto
  • He realizado self-review de mi código
  • He comentado mi código en áreas complejas
  • He actualizado la documentación correspondiente
  • Mis cambios no generan nuevas advertencias
  • He agregado tests que prueban mis cambios
  • Los tests nuevos y existentes pasan localmente
  • Los commits siguen Conventional Commits

📝 Notas Adicionales

Este PR cumple con todos los objetivos especificados en el issue #23:

  • Se creó el archivo test_gui_calculator. py con tests automatizados para la GUI
  • Se creó el archivo conftest.py con fixtures de pytest que permiten ejecutar los tests sin necesidad de tener Tcl/Tk instalado (ideal para CI/CD)
  • Se ejecutaron todas las pruebas manuales especificadas en el issue
  • Todos los casos de prueba pasaron exitosamente
  • No se encontraron bugs críticos durante el testing

Sobre conftest.py:
El archivo conftest.py implementa fixtures con autouse=True que sustituyen automáticamente los componentes de Tkinter (Tk, Entry, Button, Label) por versiones dummy durante la ejecución de tests. Esto permite:

  • ✅ Ejecutar tests sin interfaz gráfica
  • ✅ Tests más rápidos y estables
  • ✅ Compatibilidad con entornos CI/CD sin display
  • ✅ Evitar dependencias de Tcl/Tk en el entorno de testing

👥 Revisores Sugeridos

@Jhos3ph

@jandrescodes
jandrescodes requested a review from Jhos3ph November 28, 2025 18:07
@jandrescodes jandrescodes self-assigned this Nov 28, 2025
@jandrescodes jandrescodes added ayuda requerida Se necesita asistencia o revisión prueba Tareas relacionadas con testing en progreso Tarea que está siendo trabajada gui Funcionalidades de la interfaz gráfica labels Nov 28, 2025
@jandrescodes jandrescodes linked an issue Nov 28, 2025 that may be closed by this pull request
28 tasks

@Jhos3ph Jhos3ph left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the mew files are good. Nothing else to say xD 🤣

@jandrescodes
jandrescodes merged commit 72e0280 into dev Nov 28, 2025
2 checks passed
@jandrescodes
jandrescodes deleted the feature/testing-gui branch November 30, 2025 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ayuda requerida Se necesita asistencia o revisión en progreso Tarea que está siendo trabajada gui Funcionalidades de la interfaz gráfica prueba Tareas relacionadas con testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pruebas: Testing manual completo de GUI

2 participants