Outils pour utilisateurs

Outils du site


dev:c-cpp:tests-unitaires:boost

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

dev/c-cpp/tests-unitaires/boost.txt · Dernière modification : 2021/02/01 21:51 de 127.0.0.1