#include #include #include #include #include #include #include #include #include #include using namespace std; //classe di prova contenente solamente le asserzioni di test. class provaTest : public CppUnit::TestFixture{ CPPUNIT_TEST_SUITE(provaTest); //suite di test CPPUNIT_TEST(test1); CPPUNIT_TEST(test2); CPPUNIT_TEST_SUITE_END(); //chiusura suite di test int numero1, numero2, risultato; private: public: //funzione di inizializzazione dei valori delle variabili di test void setUp() { numero1=2; numero2=3; risultato=6; } //test 1: void test1() { CPPUNIT_ASSERT(numero1==numero2); //prima asserzione (di uguaglianza) CPPUNIT_ASSERT(!(numero1==numero2)); //seconda asserzione (di disuguaglianza) } //test 2: void test2() { CPPUNIT_ASSERT(risultato==numero1+numero2); //prima asserzione (di uguaglianza) CPPUNIT_ASSERT(!(risultato==numero1+numero2)); //seconda asserzione (di disuguaglianza) } //funzione pulizia valori void tearDown() { } }; //entry point del programma int main(void) { CppUnit::TextUi::TestRunner runner; //istanziazione oggetto CPPUNIT_TEST_SUITE_REGISTRATION(provaTest); //registrazione classe di test CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry(); CppUnit::TestResultCollector result; //dove mettere il risultato // Crea un gestore degli eventi CppUnit::TestResult controller; controller.addListener(&result); //gli si associa un scoltatore runner.addTest( registry.makeTest() ); //aggiunta test alla suite runner.setOutputter(new CppUnit::XmlOutputter( &runner.result(), std::cerr ) ); //setto output su file XML std::cout << "Avvio test... "; runner.run(); //avvia test std::cout << "Fine test e scrittura su file in corso..."; CppUnit::CompilerOutputter outputter( &result, std::cerr ); outputter.write(); //scrittura su file XML return 0; }