J'ai juste poussé mon propre cadre, CATCH à l'extérieur. Il est encore en cours de développement mais je pense qu'il surpasse déjà la plupart des autres frameworks. Chaque personne a des critères différents, mais j'ai essayé de couvrir la plupart des domaines sans trop de compromis. Jetez un coup d'œil à l'article de mon blog pour en avoir un avant-goût. Mes cinq fonctionnalités préférées sont les suivantes :
- En-tête uniquement
- Enregistrement automatique des tests basés sur les fonctions et les méthodes
- Décompose les expressions C++ standard en LHS et RHS (afin que vous n'ayez pas besoin de toute une famille de macros assert).
- Prise en charge des sections imbriquées dans un dispositif basé sur des fonctions
- Nommez les tests en utilisant le langage naturel - les noms des fonctions et des méthodes sont générés.
Il n'a pas faire la génération de stubs - mais c'est un domaine assez spécialisé. Je pense que Isolateur++ est le premier outil qui y parvient vraiment. Notez que les frameworks de mocking/stubbing sont généralement indépendants des frameworks de tests unitaires. CATCH fonctionne particulièrement bien avec les objets fantaisie car l'état de test n'est pas transmis par le contexte.
Il dispose également de liaisons Objective-C.
[mise à jour]
Je viens de tomber sur une de mes réponses d'il y a quelques années. Merci pour tous les excellents commentaires ! Manifestement, Catch a beaucoup évolué au cours de cette période. Il prend désormais en charge les tests de type BDD (given/ when/ then), les balises, maintenant dans une version simple et de nombreuses améliorations et raffinements internes (par exemple, une ligne de commande plus riche, une sortie claire et expressive, etc.) Un article de blog plus à jour est disponible ici.