====== 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/