13#ifndef ARCANE_UNITTESTADAPTER_H
14#define ARCANE_UNITTESTADAPTER_H
18#include "arcane/IUnitTest.h"
19#include "arcane/ArcaneException.h"
20#include "arcane/Assertion.h"
21#include "arcane/XmlNode.h"
36class UnitTestServiceAdapter
46 explicit UnitTestServiceAdapter(T* service)
47 : m_service(service) {}
55 void addTestFunction(
FuncPtr f, String name, String method_name)
74 report.
setAttrValue(
"name", m_service->serviceInfo()->localName());
76 XmlNode xunittest = report.createAndAppendElement(
"unit-test");
79 xunittest.
setAttrValue(
"method-name", func_info.m_method_name);
82 (m_service->*func_info.m_test_func)();
86 m_service->info() <<
"[OK ] " << func_info.m_name;
90 XmlNode xexception = xunittest.createAndAppendElement(
"exception");
95 m_service->info() <<
"[ECHEC] " << func_info.m_name <<
" (line " << e.
line() <<
" in " << e.
where() <<
")";
96 m_service->info() <<
" " << e.
message();
115 : m_test_func(test_func), m_name(name), m_method_name(method_name) {}
Exception dans une assertion.
const String & where() const
Localisation de l'exception.
const char * file() const
Fichier de l'exception.
const String & message() const
Message de l'exception.
int line() const
Ligne de l'exception.
Classe de base pour assertions dans les tests unitaires.
Interface d'un service de test unitaire fournissant un rapport de test sous forme d'un noeud XML.
Chaîne de caractères unicode.
Vecteur 1D de données avec sémantique par valeur (style STL).
void initializeTest() override
Implémentation de l'interface IUnitTest.
bool executeTest(XmlNode &report) override
Implémentation de l'interface IUnitTest.
void finalizeTest() override
Implémentation de l'interface IUnitTest.
UniqueArray< TestFuncInfo > m_test_functions
Service associé.
FuncPtr m_set_up_function
Pointeur vers la méthode d'initialisation de chaque test.
FuncPtr m_tear_down_function
Pointeur vers la méthode de fin de chaque test.
FuncPtr m_class_tear_down_function
Pointeur vers la méthode de fin des tests de la classe.
FuncPtr m_class_set_up_function
Pointeur vers la méthode d'initialisation de la classe.
void(T::* FuncPtr)()
Type du pointeur sur les méthodes de test.
void setAttrValue(const String &name, const String &value)
Positionne l'attribut name à la valeur value.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-