Table des matières

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:

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 <boost/test/unit_test.hpp>

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