Question

Est-il possible d'utiliser cxxunit ou tout autre cadre de tests unitaires (hors QtTestLib ) pour tester qt widgets?

Si oui, il y a deux autres questions:

  1. Comment?
  2. Depuis que je suis en cours d'exécution des tests unitaires en utilisant valgrind, puis ce rapport des erreurs?
Était-ce utile?

La solution

Oui, il devrait être possible. Je ne suis pas sûr de cxxunit spécifiquement, mais il est théoriquement possible.

  1. Pour tester correctement les objets Qt, vous aurez probablement besoin de créer / détruire un objet QApplication dans votre configuration et fonctions globales teardown. À moins que vous testez spécifiquement la fonctionnalité de QApplication, vous ne devez en créer un pour l'exécution complète de l'application de test. Cela vous permettra de tester des parties de la logique du widget, mais pas facilement l'interactivité de l'apparence ou l'interface utilisateur du widget. , Tester également certains éléments peuvent compter sur avoir le fonctionnement de la boucle d'événements de l'application, ce qui serait plus difficile.
  2. Valgrind peut signaler quelques erreurs. Il peut également rapporter des erreurs avec le code de Qt, en particulier les allocations statiques qui sont laissés à l'application teardown pour récupérer.

Autres conseils

Si vous voulez tester votre interface utilisateur, je vous suggère d'utiliser un outil de test de l'interface utilisateur comme Ecraser . Les tests unitaires que je trouve plus adapté pour tester la logique derrière les widgets, et non pas les widgets lui-même. Si vous voulez vraiment à l'unité test vos widgets Qt, je ne pense pas qu'il y ait une meilleure solution que QtTestLib.

Valgrind: Il y a un plug-in valgrind pour Ecraser . Je ne l'ai pas utilisé que moi-même si. D'autres tests unitaires peuvent évidemment facilement être exécutés dans valgrind, bien que je ne connais pas de solution qui automatise complètement cela. Il faudrait faire en sorte de supprimer vraiment tous les avertissements à l'extérieur d'un propriétaire code de sorte que certaines erreurs dans, par exemple x11 libs ne déclenche pas le test unitaire à l'échec.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top