Unit Testing para C++

133 views
Skip to first unread message

Marc Florit

unread,
Feb 18, 2014, 7:24:20 AM2/18/14
to agile-spain
Buenos días,

Escribo a la lista para formular una pregunta y dejar así evidencia de mis deficiencias y limitaciones en entornos técnicos.

En un proyecto en el que estoy colaborando se está empezando a plantear la necesidad de mejorar la cobertura de test (actualmente del 0% ;).
El proyecto está desarrollado en C++ y .Net

Mi duda es, que herramienta recomendáis usar para realizar test unitario sobre el código C++?
Me han hablado de UnitTest++, Squale y Boost Test pero no tengo referencias reales.

Muchas gracias por vuestro tiempo.


Salut,

Marc Florit




trikitrok

unread,
Feb 18, 2014, 1:44:43 PM2/18/14
to agile...@googlegroups.com
Hola

Yo sólo he usado CppUTest e Igloo++

CppUTest está bastante bien y tiene mocks.
http://cpputest.github.io/

Igloo++ es un framework para BDD.
http://igloo-testing.org/testrunner.html
Es muy fluido (casi parece Jasmine) y además fácil de instalar (sólo headers). Lo único malo es que no tiene mocks, pero, creo que puedes usar los de GoogleMocks junto con él (esto último, no lo he hecho, sólo lo leí).

Eso nos lleva al otro framework del que se habla muuuy bien:
GoogleMocks/GoogleTests.
https://code.google.com/p/googlemock/
Yo no lo he usado todavía, pero parece muy chulo.

Yo intentaría probar con CppUTest o GoogleMocks.

También te recomiendo estos libros:

* Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better de Jeff Langr
http://www.amazon.com/Modern-Programming-Test-Driven-Development-Better-ebook/dp/B00HUEG8M8
El autor usa CppUTest y GoogleMocks en los ejemplos.

* Working effectively with legacy code de Michael Feathers porque tiene muchas técnicas útiles para hacer testeable código legado en C/C++.
http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052

* Test Driven Development for Embedded C.
http://pragprog.com/book/jgade/test-driven-development-for-embedded-c
Es para C pero también usan CppUTest.

Este es el Google Group de GoogleMock:
https://groups.google.com/forum/#!forum/googlemock

y este el de CppUTest:
https://groups.google.com/forum/#!forum/cpputest

Bueno, mucho ánimo con el C++.

Saludos,
Manuel

Marc Florit

unread,
Feb 18, 2014, 2:58:06 PM2/18/14
to agile...@googlegroups.com
Waw! Muchísimas gracias por la info y las referencias Manuel.

Las revisaré con el equipo a ver con cual quieren empezar a "jugar".

Gracias,

Marc Florit

El 18/02/2014, a les 19:44, trikitrok <trik...@gmail.com> va escriure:
--
Has recibido este mensaje porque estás suscrito al grupo "agile-spain" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a agile-spain...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a agile...@googlegroups.com.
Para ver este debate en la Web, visita https://groups.google.com/d/msgid/agile-spain/600f68ee-9939-4af0-88aa-535e25972659%40googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Antonio Martinez

unread,
Feb 19, 2014, 12:21:20 PM2/19/14
to agile...@googlegroups.com
Yo he usado googletest/googlemocks. Algunos proyectos pequeños de katas están en mi GitHub, principalmente para problemas de la Web Solveet. La documentación es muy buena para usar las librerías.
Es muy muy sencilla de usar, curva de aprendizaje mínima.

He visto por encima Igloo++ y tiene muy buena pinta, pero no tengo nada práctico hecho. 

Ánimo!

Manuel Castro Viñas

unread,
Feb 19, 2014, 3:00:12 PM2/19/14
to agile...@googlegroups.com
Buenos días Marc,

    En nuestro caso este año hemos probado gTest+gMock de Google Test Framework tanto para TDD como para BDD integrado con Cucumber (Cucumber-cpp) asi matas a dos "pajarracos" de un solo tiro. Solo para C++.

    Lo peor ha sido hacerlo correr en Visual Studio 2010... Pero esto puede ser porque no es mi herramienta habitual :oP
--
Has recibido este mensaje porque estás suscrito al grupo "agile-spain" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a agile-spain...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a agile...@googlegroups.com.

Marc Florit

unread,
Feb 20, 2014, 2:15:28 AM2/20/14
to agile...@googlegroups.com
Muchas Gracias Manuel (2) y Antonio,

Ya hemos reservado algo de capacidad del equipo para hacer un spike de Unit Testing en la próxima iteración y probar así un par de frameworks.
Ya os contaré ;)

Salut,

Marc Florit




Reply all
Reply to author
Forward
0 new messages