Je n'ai pas l'habitude d'encenser Google, mais quand ils font des trucs bien, il faut aussi savoir le dire. Je suis très impressionné par la bibliothèque GTest, qui est un cadriciel pour écrire des tests unitaires. C'est très bien pensé, et plein de bonnes idées : d'excellents comparateurs, une intégration démentielle avec CMake, mais surtout, la cerise sur le gâteau: un affichage console particulièrement pratique. Regardez donc ce programme:
#include <gtest/gtest.h> TEST(Test, message) { std::string s1("abc"); std::string s2("def\nghi\njkl"); ASSERT_EQ(s1, s2); }
Quand on le fait tourner, on obtient:
gtest.cpp:9: Failure Expected equality of these values: s1 Which is: "abc" s2 Which is: "def\nghi\njkl" With diff: @@ -1,1 +1,3 @@ -abc +def +ghi +jkl
Regardez moi ça ! Il m'indique le nom des deux variables, leurs valeurs, et un diff ligne par ligne. Mais surtout, il m'affiche la valeur des variables non pas comme l'afficherait std::cout ou std::format, mais comme on devrait l'avoir dans le code source ! Et ça, c'est vraiment magique. Quand on a un résultat bien complexe, avec des caractères échappés, des retours chariots et tout et tout, juste pouvoir copier la sortie du test unitaire pour la coller telle quelle dans le source du test, quel confort ! La petite idée simple, mais il fallait y penser.
Aucun commentaire:
Enregistrer un commentaire