Visual Basic for Applications:
Escribiendo pruebas

Cómo hacerlo:

Aunque Visual Basic para Aplicaciones (VBA) no viene con un marco de pruebas integrado similar a los disponibles en lenguajes como Python o JavaScript, aún puedes implementar procedimientos de prueba simples para verificar la integridad de tu código. Aquí hay un ejemplo para ilustrar:

Supongamos que tienes una función en VBA que suma dos números:

Function AddNumbers(x As Integer, y As Integer) As Integer
    AddNumbers = x + y
End Function

Para probar esta función, puedes escribir otro procedimiento que valide su salida contra los resultados esperados:

Sub TestAddNumbers()
    Dim result As Integer
    result = AddNumbers(5, 10)
    If result = 15 Then
        MsgBox "¡Prueba Pasada!", vbInformation
    Else
        MsgBox "Prueba Fallida. Se esperaba 15 pero se obtuvo " & result, vbCritical
    End If
End Sub

Ejecutar TestAddNumbers mostrará un cuadro de mensaje indicando si la prueba pasó o falló basado en la salida de la función. Aunque este es un escenario simplificado, puedes construir pruebas más complejas incorporando bucles, diferentes valores de entrada, y pruebas para múltiples funciones.

Profundización

El enfoque para escribir pruebas en VBA mostrado aquí es manual y carece de las características de marcos de pruebas más sofisticados disponibles en otros entornos de programación, como ejecuciones de pruebas automatizadas, procedimientos de configuración/finalización, e informes integrados de resultados de pruebas. Antes de la adopción más amplia de marcos de pruebas unitarias y desarrollo dirigido por pruebas (TDD), los procedimientos de prueba manual similares al descrito eran comunes. Aunque este método es simple y puede ser efectivo para proyectos pequeños o con fines de aprendizaje, no es escalable o eficiente para proyectos más grandes o equipos.

En entornos que admiten conjuntos de herramientas de desarrollo más ricos, los programadores a menudo recurren a marcos como NUnit para aplicaciones .NET o JUnit para aplicaciones Java, que proporcionan herramientas completas para escribir y ejecutar pruebas de manera sistemática. Estos marcos ofrecen características avanzadas como afirmar resultados de pruebas, configurar objetos simulados, y medir la cobertura de código.

Para los desarrolladores de VBA que buscan capacidades de prueba más avanzadas, la alternativa más cercana podría ser aprovechar herramientas externas o integrarse con otros entornos de programación. Algunos desarrolladores usan VBA en conjunto con Excel para grabar escenarios de pruebas y resultados manualmente. Aunque no es tan conveniente o automatizado como usar un marco de pruebas dedicado, estos métodos pueden cerrar parcialmente la brecha, ayudando a mantener la fiabilidad de las soluciones VBA en aplicaciones complejas o críticas.