buenas miguel:
unittest es una herramienta que te permite establecer test que se ejecutarán de forma automática, y podrás comprobar si los cambios que realizaste desde la última vez han "roto" algo de lo que ya tenías.
En pilasC++ los estamos usando. puedes descargarte el código si quieres echarle un vistazo
Te pongo aquí un ejemplo:
- Código: Seleccionar todo
#include <Pilas/habilidades.h>
#include <Pilas/entidad_base.h>
#include <Pilas/actores.h>
#include <Pilas/texto.h>
#include <Pilas/tipo_habilidades.h>
#include <iostream>
#include <UnitTest++.h>
void funcion_test( Pilas::vector_entidades objetos, sf::Event& evento )
{
std::cout << "funcion de prueba" << std::endl;
}
struct Habilidades_fixture
{
Habilidades_fixture(): nombre("funcion_test"), habilidades()
{
habilidades.registrar(nombre, &funcion_test);
}
std::string nombre;
Pilas::Habilidades habilidades;
};
SUITE( PILAS_HABILIDADES )
{
TEST( CARGAR_FICHERO )
{
Pilas::Habilidades habilidades( "../tests/habilidades.txt" );
int resul = habilidades.numero_habilidades();
CHECK_EQUAL( 6, resul );
}
TEST_FIXTURE(Habilidades_fixture, REGISTRAR_FUNCION )
{
int resul = habilidades.numero_habilidades();
CHECK_EQUAL( 6, resul );
}
TEST_FIXTURE(Habilidades_fixture, NUMERO_OBJETOS_POR_DEFECTO)
{
int num_objetos = habilidades.numero_objetos( nombre );
CHECK_EQUAL( 0, num_objetos );
}
TEST_FIXTURE(Habilidades_fixture, REGISTRAR_HABILIDAD_REPETIDA )
{
int resul = habilidades.numero_habilidades();
CHECK_EQUAL( 6, resul );
habilidades.registrar( nombre, &Pilas::SeguirAlMouse::mover );
resul = habilidades.numero_habilidades();
CHECK_EQUAL( 6, resul );
}
TEST_FIXTURE(Habilidades_fixture, ENSENIAR_HABILIDADES )
{
Pilas::Entidad_base* objeto = NULL;
habilidades.enseniar(nombre, objeto);
int resul = habilidades.numero_objetos(nombre);
CHECK_EQUAL(1, resul);
}
}
Suponte que ahora cambio algo de la clase habilidades, y al ejecutar los test me dice que ha habido errores. Esto me indicaría que lo que acabo de cambiar a tocado algo que no debería.
En proyectos pequeños a lo mejor no supone una gran ventaja, pero son cosas que a mi me gusta conocer para el día de mañana, donde probablemente la empresa donde trabajes, si que lo podría utilizar. Pero si no llevas demasiado bien el inglés, no te recomendaría su uso, ya que casi toda la documentación está en inglés. Pero ten en cuenta que sin poder leer bien en inglés, te estás perdiendo el 90% de la información que hay ahí fuera.