7
votes

comparer Qtest avec d'autres cadres

Pouvez-vous comparer des frameworks de test unitaires populaires pour C ++ avec Qtest of Qt?

(CPPUnit, test de boost, test Google, etc.)

Quels sont les avantages des inconvénients? Merci.

Remarque: le test de l'interface graphique n'est pas très important pour nous.


0 commentaires

3 Réponses :


5
votes

Qtest est le seul cadre que je connaisse pour les composants d'interface utilisateur des tests de l'unité. Nous l'avons utilisé avec un certain succès, mais collez-vous à Boost.Test pour nos tests unitaires réguliers.


0 commentaires

1
votes

QtTest (jusqu'à Qt 5.7) ne fournit pas la capacité de s'attendre à une affirmation dans l'UUT, tandis que Googletest a le concept de tests de mort et peut avoir un test qui teste un test d'affirmation. Nous trouvons cela utile dans GoogletTest et Anoyage qu'il manque de qttest!


0 commentaires

2
votes

Sur la base de mes expériences que je ne peux pas recommander le cadre de test QT. Les deux avantages possibles, que peuvent être mentionnés sont:

  • qsignalalspy: Pour vérifier les signaux émis (utiles uniquement pour QT), mais cela peut également être utilisé avec d'autres techniques de test
  • Easy pour écrire des tests paramétrés

    Les principaux inconvénients:

    • Les luminaires ne sont pas pris en charge par défaut, vous devez effectuer des opérations de contournement dans la configuration de la dérappement
    • QCompare ne peut pas comparer les valeurs avec un type différent. Par exemple, comparer deux std :: chrono :: de la durée avec un rapport différent est impossible, bien qu'ils soient également comparables. Il est très gênant de lancer juste pour qcompare

      Boost est simple et utilisable, cela fonctionne bien pour la plupart des cas, sans surprises.

      L'avantage principal du cadre de test Google est le support moqueur. Mais cette fonctionnalité peut également être utilisée pour d'autres cadres. Il a beaucoup d'excellentes fonctionnalités, comme la définition des séquences d'appels attendues, des compartiments personnalisés, des affirmations peuvent être lisibles pour l'homme. Mais il faut du temps pour connaître ces caractéristiques (en supposant que vous en avez besoin).

      Je veux mentionner un autre cadre: capture. C'est un cadre d'en-tête, avec très peu d'affirmations. Par exemple. exiger (A == B) fonctionnera et les valeurs de A et b seront résolus sur une défaillance. Il n'y a pas besoin de classes de luminaires ou de chaudières, vous pouvez simplement définir des sections dans un boîtier de test, elle sera effectuée N-Times, avec des sections différentes. C'est très simple, lisible par l'homme. De l'autre côté, il faut du temps pour être compilé par défaut.


0 commentaires