2009-05-27 24 views
13

He estado leyendo mucho sobre pruebas unitarias y desarrollo impulsado por prueba.Pruebas unitarias en C++

Recientemente, también leí el código de prueba de la unidad java.

Yo, sin embargo, prefiero desarrollar en Qt. Así que busqué en Google "pruebas unitarias en C++" y encontré una gran cantidad de información sobre varios marcos de pruebas de unidades disponibles para C++.

Sin embargo, no pude encontrar una comparación confiable de los diversos marcos.

Por lo tanto, busco en la comunidad SO para que me guíe a través de la selección de lo que puede ser el "mejor" marco de pruebas unitarias para C++.

Además, si alguien tenía comentarios específicos con respecto a TDD en Qt (especialmente con Qt-Creator), entonces son más que bienvenidos.

+0

Buscar SO - existen varias preguntas para este tema. Votando para cerrar. – Gishu

+6

Oh, pero ninguno de ellos toca el aspecto Qt. – jrharshath

Respuesta

17

Por lo general utilizan Boost, pero si usted está usando Qt, su QtTestLib podría ser la mejor opción.

+0

justo lo que estaba buscando :) – jrharshath

+0

No sé mucho sobre Boost, pero la desventaja más grande de QTestLib es que no es confiable con fallas - por ejemplo, si su unidad se cuelga, su suite se bloquea y el informe será difícil de analizar (si confía en esa característica, por ejemplo, en informes de prueba automáticos). – rasjani

1

Boost es generalmente una buena opción, y contiene un marco de prueba, el Boost Test Library. Lo he usado para pequeños casos de prueba e hizo lo que esperaba, pero no lo he usado extensamente como en TTD.

2

La familia "xUnit" de los marcos de prueba suele ser bastante sólido (jUnit, NUnit, etc.). No he utilizado yo mismo, pero hay un puerto de jUnit para C++:

http://sourceforge.net/projects/cppunit

+2

cppUnit es muy fácil de usar y ejecutar; lo usamos en un entorno comercial, probando más de 50 Dlls separados, cada uno con unos miles de casos de prueba. Ha demostrado ser muy confiable y flexible. – Thomi

2

Hay un table comparing all (?) the C++ unit test frameworks disponible en la wikipedia.

También hay un viejo comparison of C++ unit test frameworks disponible. No creo que no se haya actualizado, así que lo menciono como un complemento, ya que está más argumentado que la tabla. Cubre, CppUnit, CppUnitLite, Boost.Test, NanoCppUnit, Unit ++, CxxTest, especialmente no cubre Google C++ framework.

+1

Boost.La prueba al menos ha sido muy extendida y mejorada desde que se escribió el juego dentro del artículo. Lo mismo es probable también para los otros marcos, pero no los utilizo, por lo que no puedo asegurarlo. – jalf

5

Recomendaría doctest (creado por mí) - es el más ligero en tiempos de compilación de todos los marcos de prueba populares. También es un competidor directo de Catch, que actualmente es el marco más utilizado. Consulte las diferencias en FAQ