Pregunta

¿Es posible utilizar cxxunit o cualquier otro marco de pruebas de unidad (excluyendo QtTestLib ) a prueba de qt widgets?

Si es así, entonces hay dos preguntas más:

  1. ¿Cómo?
  2. Desde que estoy ejecutando pruebas unitarias utilizando valgrind, puedo este informe algunos errores?
¿Fue útil?

Solución

Sí, debería ser posible. No estoy seguro acerca de cxxunit específicamente, pero es teóricamente posible.

  1. Para probar correctamente objetos Qt, es probable que necesite para crear / destruir un objeto QApplication en sus funciones de montaje y desmontaje globales. A no ser que está probando la funcionalidad QApplication, sólo se debe crear uno para toda la ejecución de la aplicación de prueba. Esto le permitirá poner a prueba las porciones de la lógica del widget, pero no fácilmente el aspecto o la interfaz de usuario de interactividad del widget. Además, el control de ciertos elementos puede depender de tener en funcionamiento bucle de eventos de la aplicación, lo que sería más difícil.
  2. Valgrind puede informar de algunos errores. También puede informar de errores con el código de Qt, en particular, las asignaciones estáticas que se dejan desmontaje aplicación para reclamar.

Otros consejos

Si desea probar la interfaz de usuario, Es mejor utilizar una herramienta de prueba de interfaz de usuario como Squish . Las pruebas unitarias me parecen más adecuados para poner a prueba la lógica detrás de los widgets, no el propio widgets. Si realmente quiere unidad de prueba de sus componentes Qt, no creo que hay una solución mejor que QtTestLib.

Valgrind: Hay una valgrind plug-in para Squish . No he usado que uno mismo sin embargo. Otras pruebas unitarias pueden, por supuesto, fácilmente pueden ejecutar en valgrind, aunque no sé de cualquier solución que automatiza completamente esto. Habría que asegurarse de que realmente suprimir todas las advertencias de un exterior posee código para que algún error en, por ejemplo, libs x11 no se activa la unidad de prueba falle.

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