Pregunta

Estamos desarrollando en C ++ bajo Linux y estamos a punto de configurar pruebas automatizadas. Tenemos la intención de utilizar un marco de prueba como CppUnit oder CxxTest. Estamos usando Ant para construir el software y también lo usaremos para ejecutar las pruebas.

Como algunas pruebas implicarán el acceso a la base de datos, estamos buscando una herramienta o marco que facilite las tareas de preparación y limpieza de los datos de prueba en la base de datos, al igual que DbUnit (una extensión JUnit) en el mundo Java.

Otra opción puede ser emplear la DbUnit real, una Java VM está disponible. Hacer uso de la tarea Ant de DbUnit parece ser lo más prometedor. ¡Cualquier informe de campo relacionado es bienvenido!

¿Fue útil?

Solución 3

Como parece que no hay una herramienta similar a DbUnit para el desarrollo de C ++, hemos creado un pequeño marco de trabajo propio. Básicamente, es un adaptador para llamar a operaciones DbUnit reales desde los ejecutores de pruebas C / C ++. Hace uso de las Tareas Ant proporcionadas por DbUnit.

Definimos algunas macros como TS_DB_INSERT (nombre de archivo) que llaman al sistema (" ant -Ddb.dataset = filename db.insert ") y similares.

En este caso, db.insert es un destino Ant que ejecuta una tarea DbUnit que realiza una operación INSERT en la base de datos. El filename hace referencia a un conjunto de datos XML que contiene los datos para insertar. También hay una macro de aserción que envuelve un compare de DbUnit.

El caso de prueba podría verse así:

void testDatabaseStuff
{
    TS_DB_INSERT("input.xml");

    TestedClass::doSomething();

    TS_DB_ASSERT("expected.xml");
}

Otros consejos

Recomendaría unidad de refuerzo pruebas . Probablemente tendría que usar la configuración y el desmontaje para limpiar manualmente la base de datos. Por supuesto, usted podría construir su propia DbUnit de C ++ en ODBC. ¡SI me avisas porque podría usar esto también!

Supongo que tienes tu propia API de C ++ para trabajar con DB. Si es verdad, es mejor que hagas toda la preparación de tu DB por tu cuenta. En ese caso, también probarás tu DB API.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top