====== tests unitaires avec boost ====== Boost est une bibliothèque C/C++ qui étend les fonctionnalité de la bibliothèque standard. Elle offre notamment un framework de tests. ===== Installer boost ===== Installation de la bibliothèque via le gestionnaire de paquets: $ sudo apt-get install libboost-test-dev Ajouter la bibliothèque au projet, en la déclarant au linker. Sous Eclipse: * clic-droit sur le projet, option **Properties**, * Déployer l'arborescence **C/C++ Build -> settings** * Onglet tool settings, dans les options du linker **GCC C++ Linker -> Libraries**, ajouter la bibliothèque **boost_unit_test_framework** dans la section Libraries (-l). ===== Tests unitaires ===== Creer le fichier d'entete a ajouter a tous les fichiers sources de test: /* * Test.h * * Created on: 10 nov. 2013 * Author: yoann */ #define BOOST_TEST_DYN_LINK #define BOOST_TEST_MAIN #include Pour chaque classe du projet, un fichier de test est créé. Dans l'exemple suivant, la classe Boat est testée dans le fichier Boat_test.cpp Les macros boost permettent de déclarer des tests et les conditions de validations: #include "Test.h" #include "Boat.h" BOOST_AUTO_TEST_CASE(BoatconstructorTest) { Boat my_boat = Boat(); //A l'instanciation un bateau a 10 point d'armure et une taille de 5 unités par défaut. BOOST_REQUIRE_EQUAL(my_boat.getArmor(), 10); BOOST_REQUIRE_EQUAL(my_boat.getSize(), 5); } BOOST_AUTO_TEST_CASE(BoatsetArmorTest1) { Boat my_boat = Boat(); BOOST_REQUIRE_EQUAL(my_boat.getArmor(), 10); //la methode setArmor redefinit la valeur de l'armure my_boat.setArmor(22); BOOST_REQUIRE_EQUAL(my_boat.getArmor(), 22); } ===== Références ===== * http://romain.therrat.fr/c-creer-des-tests-unitaires-en-cpp-avec-boost-test/