J'ai pas non plus envie de faire des manips compliquées pour tester mes classes en C++.
Là, j'ai un petit projet (qui est en fait un retour en arrière) : je souhaite implémenter un protocole de bloc cipher : Present.
Avant de décrire ceci, je préfère décrire la méthode pour ajouter cash direct des class test dans mon projet :
Je télécharge la classe actuelle de chez google :
https://github.com/google/googletest/
je créé mon projet, je dézippe ce dossier dans ce projet, dans un répertoire créé pour l'occasion nommé "lib".
J'ajoute ça dans mon fichier Cmakelists:
cmake_minimum_required(VERSION 3.6) project(crypto) set(CMAKE_CXX_STANDARD 14) # added lines for gtestadd_subdirectory(lib/googletest-master) include_directories(lib/googletest-master/googletest/include) include_directories(lib/googletest-master/googlemock/include) set(SOURCE_FILES main.cpp Present.cpp Present.hpp Tests/test_present.cpp) add_executable(crypto ${SOURCE_FILES} Tests/test_present.cpp) # added lines for gtesttarget_link_libraries(crypto gtest gtest_main)
Attention à bien voir que le fichier de test est un .cpp hein, pas un header. J'ai perdu une soirée à cause de ça c'est malin !
La classe se présente e cette manière :
#include#include #include "../Present.hpp"
En gros ici, on importe les classes nécessaires... Rien d'anormal.
using testing::Eq; namespace { class ClassDeclaration : public testing::Test{ public: Present present; };} TEST_F(ClassDeclaration, nameOfTheTestOne){ ASSERT_EQ(1, 1);} TEST_F(ClassDeclaration, nameOfTheTestTwo){ ASSERT_NE(1, 0);}
Et voilà pour la classe de tests.
Maintenant, faut ajouter ça dans le main :
testing::InitGoogleTest(&argc, argv);RUN_ALL_TESTS();
Et là, on est bons.
Je fais juste run depuis Clion, et hop, tout se lance.
Bon, ben y a plus qu'à développer ce drôle de truc...
Aucun commentaire:
Enregistrer un commentaire