mardi 7 février 2017

Test class googletest

Je m'essaie à cette nouvelle méthode. Je ne suis pas super bonne en makefile, je ne souhaite pas écrire mes makefile pour chaque projet alors que j'ai un super IDE (jetbrains, Clion) qui le fait pour moi...

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:

Membres