UnitTest ++ es un framework de testing para C ++. Fue diseñado para hacer desarrollo basado en pruebas en una amplia variedad de plataformas. La simplicidad, la portabilidad, la velocidad y la pequeña huella son aspectos muy importantes de UnitTest ++. UnitTest ++ es en su mayoría estándar C ++ y hace un uso mínimo de la biblioteca avanzada y características del lenguaje, lo que significa que debe ser fácilmente portátil a casi cualquier plataforma. Se puede instalar en las siguientes plataformas:
- Windows
- Linux
- Mac OS X
Desde Linux es fácil instalar el framework:
sudo apt-get install libunittest++-dev
o
sudo yum install libunittest++-dev
Instalado este framework abrimos nuestro qt y nuestro proyecto, y agregamos en el .pro la siguiente linea:
LIBS += -lunittest++
Con esta linea agregamos el framework de test y ahora podemos escribir un test, por lo tanto creamos un archivo .cpp nuevo y realizamos un test.
En el siguiente ejemplo voy a testear una lista de enteros:
#include <unittest++/UnitTest++.h>
#include "list.h"
TEST(sizeEquals1) {
List list;
CHECK(list.add(2));
CHECK(list.getSize()==1);
}
TEST(sizeEquals2) {
List list;
CHECK(list.add(2));
CHECK(list.add(2));
CHECK(list.getSize()==2);
}
TEST(sizeEquals1WithRemove) {
List list;
CHECK(list.add(2));
CHECK(list.add(2));
CHECK(list.remove(2));
CHECK(list.getSize()==1);
}
int main()
{
return UnitTest::RunAllTests();
}
Y eso es todo, solo debemos correr el main y obtendremos el resultado de los tests, por ejemplo:
../Collections/test.cpp:22: error: Failure in sizeEquals1WithRemove: list.getSize()==1
FAILURE: 1 out of 3 tests failed (1 failures).
Test time: 0.00 seconds.
Lo que esta diciendo aquí es que fallo el test sizeEquals1WithRemove. Y si todos los test terminan bien:
Success: 3 tests passed.
Test time: 0.00 seconds.
Press <RETURN> to close this window...
Dejo link: