Cutre-framework de pruebas en Ansi C
En este caso vamos a demostrar que no hay excusa para no hacer pruebas, ya que podemos montarnos un framework en un momento en cualquier lenguaje.
El framework no va a ser una maravilla, pero lo vamos a hacer muy rápido.
¿Qué es lo que queremos?
Realmente sólo necesitamos que nos facilite comprobaciones y que nos muestre un resultado al final. Como es algo sencillito, asumiremos que no vamos aprobar nada concurrente.
Contando
Por eso comenzaremos con un par de variables globales. Estoy en contra de las variables globales, pero esto no va a llegar a producción, ni se va a generalizar. Tan solo es un ejemplo. Veamos…
|
|
Y ya tenemos una variable para contar errores y otra para contar pruebas.
Hagamos una función que incremente el número de tests:
|
|
Hemos dicho que va a ser sencillito, no que vaya a ser feo. Cada prueba pintaremos un punto; cada 10 pruebas, un símbolo “+” y cada 100 pruebas lo indicaremos y saltaremos a otra línea.
Imprimiendo el resultado
Ahora vamos a imprimir el resultado:
|
|
Nada de otro mundo: el número total de pruebas, los que han pasado y los que no.
Comprobaciones
Ahora es el turno de comprobar que las cosas funcionan como deben. Vamos a crearnos nuestros assert:
|
|
Programa principal
Ahora vamos con el programa principal, que lo único que hará será ejecutar una cosa debajo de otra:
|
|
Y sólo nos queda implementar los tests propiamente dichos. La función execute_tests
será una lista de llamadas a tests y éstos se parecerán a lo que sigue:
|
|
Y ya tenemos nuestro propio framework de pruebas:D