Referencia de la Clase test_BUnit

Prueba BUnit.h. Más...

Diagrama de herencias de test_BUnit

TestCase

Lista de todos los miembros.

Métodos públicos

bool run ()
 Método principal de la prueba.
void test_constructor ()
 Datos de prueba para los constructores de la clase TestCase.
void test_reset ()
 Datos de prueba para los métodos TestCase::reset() y TestCase::resetTests().
void test_addTest ()
 Datos de prueba para los métodos TestSuite<TestCase>::addTest().
void test_run ()
 Datos de prueba para los métodos run() y runBare().
void test_setName ()
 Datos de prueba para los métodos getName() y setName().
void test_testThis ()
 Datos de prueba para el método testThis().
void test_BUnit_macro ()
 Datos de prueba para las macros de BUnit.h.
void test_assertTrue_Msg ()
 Datos de prueba para las macros de assertTrue_Msg().
void test_Allison ()
 Datos de prueba similares a los de Allison.
void runBare ()
 Ejecuta la prueba setUp(); run(); tearDown();.
bool Run ()
 Sinónimo de run().
bool runTest ()
 Sinónimo de run().
virtual void setUp ()
 Establece el ambiente en que se realizará cada prueba.
virtual void tearDown ()
 Destruye el ambiente de prueba.
int countTestCases () const
 Cantidad de casos de prueba que serán ejecutados.
int runCount () const
 Cantidad total de pruebas realizadas.
virtual int errorCount () const
 Cantidad de pruebas que han producido error.
int failureCount () const
 Siempre retorna 0 (cero): "Cantidad de fallas".
virtual int successCount () const
 Cantidad de pruebas exitosas.
bool wasSuccessful () const
 Retorna "true" si todas las pruebas han sido exitosas.
virtual void reset ()
 Elimina todas las pruebas realizadas.
std::string getName () const
 Obtiene el nombre de la prueba.
void setName (const char *name=0)
 Le cambia el nombre a la prueba.
virtual const std::string toString () const
 Hilera "enooorme" que contiene copia del registro de pruebas no exitosas, separados por "\n".
virtual const std::string summary () const
 Retorna un hilera que contiene el nombre, cantidad de éxitos y cantidad de errores de la prueba.
virtual const std::string toXML () const
 Hilera XML que contiene una copia de las pruebas no exitosas.
const std::string report () const
 Retorna la hilera encabezado summary() seguido de errores toString().
const std::string errorString () const
 Sinónimo de toString().

Métodos públicos estáticos

template<class T>
static std::string toString (const T &val)
 Retorna una hilera que contiene el valor de val.

Métodos protegidos

void recordSuccess ()
 Registra como exitoso el resultado de una prueba.
void recordError (const char *label, const char *fname, int lineno, bool must_copy=false)
 Registra que la prueba no tuvo éxito.
void recordError (const std::string &label, const char *fname, int lineno)
 Registra que la prueba no tuvo éxito.
void testThis (bool cond, const std::string &label, const char *fname, long lineno)
 Sinónimo de testThis();.
void testThis (bool cond, const char *label, const char *fname, long lineno, bool must_copy=false)
 Efectúa la prueba y registra el resultado.
int nPass () const
 Sinónimo de successCount() [OBSOLETO].
int nError () const
 Sinónimo de errorCount() [OBSOLETO].

Atributos protegidos

int m_pass
 Cantidad de pruebas exitosas.
int m_error
 Cantidad de pruebas que han producido error.
const char * m_name
 Nombre del caso de prueba.
bool m_test_suite_destroy
 Indica si la prueba está en memoria dinámica.
std::list< TestCaseErrorm_errorList
 Contenedor para registrar las pruebas que han producido error.

Amigas

class TestSuite
 Colección de pruebas.
template<class TestCase>
void do_toXML (const TestCase *tc, std::basic_ostringstream< char > &ost)
 Le agrega a ost la hilera de todas las pruebas no exitosas de *tc en formato XML.
template<class TestCase>
void do_toString (const TestCase *tc, std::basic_ostringstream< char > &ost)
 Le agrega a ost la hilera de todas las pruebas no exitosas de *tc.


Descripción detallada

Prueba BUnit.h.

Definición en la línea 15 del archivo test_BUnit.cpp.


Documentación de las funciones miembro

bool test_BUnit::run (  )  [virtual]

Método principal de la prueba.

Implementa TestCase.

Definición en la línea 31 del archivo test_BUnit.cpp.

void test_BUnit::test_constructor (  ) 

Datos de prueba para los constructores de la clase TestCase.

Definición en la línea 46 del archivo test_BUnit.cpp.

void test_BUnit::test_reset (  ) 

Datos de prueba para los métodos TestCase::reset() y TestCase::resetTests().

Definición en la línea 66 del archivo test_BUnit.cpp.

void test_BUnit::test_addTest (  ) 

Datos de prueba para los métodos TestSuite<TestCase>::addTest().

SSS se queda vacío

Definición en la línea 98 del archivo test_BUnit.cpp.

void test_BUnit::test_run (  ) 

Datos de prueba para los métodos run() y runBare().

Definición en la línea 171 del archivo test_BUnit.cpp.

void test_BUnit::test_setName (  ) 

Datos de prueba para los métodos getName() y setName().

Definición en la línea 201 del archivo test_BUnit.cpp.

void test_BUnit::test_testThis (  ) 

Datos de prueba para el método testThis().

Definición en la línea 218 del archivo test_BUnit.cpp.

void test_BUnit::test_BUnit_macro (  ) 

Datos de prueba para las macros de BUnit.h.

Definición en la línea 242 del archivo test_BUnit.cpp.

void test_BUnit::test_assertTrue_Msg (  ) 

Datos de prueba para las macros de assertTrue_Msg().

Definición en la línea 284 del archivo test_BUnit.cpp.

void test_BUnit::test_Allison (  ) 

Datos de prueba similares a los de Allison.

    {{  // test::Allison()
        // Pila LIFO de letras -- muy simple (<em>Last In First Out</em>).
        // - Tira la excepción \c std::logic_error en operaciones inválidas.
        // - Ejemplo inspirado en el trabajo de Chuck Allison
        // - http://search.yahoo.com/search?n=100&p=Simplest+Unit+Test+Allison
        class Stack {
        public:
            enum { N = 5 /* Capacidad máxima de la pila.*/ };
            // Constructor de una pila con capacidad para \c "Stack::N" valores.
            Stack() : m_top(0) { m_vec[m_top] = 0; }
            // Agrega una copia de \c "v" al tope de la pila.
            void push(const char& v) {
                if ( m_top != N ) { m_vec[m_top] = v; m_top++; }
                else { throw std::out_of_range("Stack::push()"); }
            }
            // Elimina el valor del tope de la pila.
            void pop() {
                if ( m_top>0 ) { m_top--; }
                else { throw std::out_of_range("Stack::pop()"); }
            }
            // Referencia al valor almacenado en el tope de la pila.
            char& top() {
                if ( m_top>0 ) { return m_vec[m_top-1]; }
                else { throw std::out_of_range("Stack::top()"); }
            }
            // Cantidad de valores almacenados.
            unsigned size() const { return m_top; }
        private:
            char m_vec[N+1] ; // Vector de valores almacenados.
            int  m_top;       // Siguiente campo disponible.
        }; // Stack

        class MyTest : public TestCase {
        public:
            bool run() {
                Stack S; // la gran pila

                try { // Pila vacía
                    S.pop();
                    fail_Msg("! S.pop()");
                }
                catch ( std::out_of_range & ex ) {
                    assertTrue( 0 == strcmp( ex.what() , "Stack::pop()" ) ); // Ok: pila vacía
                }
                catch (...) {
                    fail_Msg("! ( std::out_of_range & )");
                }

                try { // Pila llena
                    for (int i=0; true; ++i) {
                        S.push('0'+i);
                        assertTrue( S.top() == '0'+i );
                    }
                    fail_Msg("! S.push()");
                }
                catch ( std::out_of_range & ex ) {
                    assertTrue( 0 == strcmp( ex.what() , "Stack::push()" ) ); // Ok: pila llena
                }
                catch (...) {
                    fail_Msg("! ( std::out_of_range & )");
                }

                try { // Vacea la pila
                    for (int i=Stack::N-1; true; --i) {
                        assertTrue( S.top() == '0'+i );
                        S.pop();
                    }
                    fail_Msg("! S.pop()");
                }
                catch ( std::out_of_range & ex ) {
                    assertTrue( 0 == strcmp( ex.what() , "Stack::top()" ) ); // Ok: pila vacía
                }
                catch (...) {
                    fail_Msg("! ( std::out_of_range & )");
                }
                return wasSuccessful();
            }
        }; // MyTest
        MyTest thisTest;
        thisTest.run(); // produce 0 errores
        assertTrue( thisTest.wasSuccessful() );
    }}
Ver también:
test_BUnit::test_Allison()

Definición en la línea 323 del archivo test_BUnit.cpp.

void TestCase::runBare (  )  [inline, inherited]

Ejecuta la prueba setUp(); run(); tearDown();.

    {{  // test::run()
        class MyTest : public TestCase {
            int m_val; // comienza en 0
        public:
            MyTest() : m_val(0) {}
            void setUp() { m_val = 1; }
            void tearDown() { m_val = 2; }
            bool run() {
                assertTrue( m_val == 1 );
                return wasSuccessful();
            }
        }; // MyTest
        TestSuite<TestCase> SSS;
        SSS.addTest( new MyTest );  SSS.addTest( new MyTest );
        assertTrue( 2 == SSS.countTestCases() );
        assertTrue( "" == SSS.errorString() );

        SSS.runBare(); // Correcto porque setUp() pone [m_val == 1]
        assertTrue( "" == SSS.toXML() );

        SSS.run();  // Error: [m_val == 2] pues así lo dejó tearDown()
        std::string sssXML = SSS.toXML();
        assertTrue( "" != sssXML ); // pues hay errores en SSS
        assertTrue( sssXML.find("m_val") != string::npos );
        assertTrue( SSS.runCount() == 2+2 );
    }}
Ver también:
test_BUnit::test_run()

Reimplementado en TestSuite< TestCase >.

Definición en la línea 271 del archivo BUnit.h.

bool TestCase::Run (  )  [inline, inherited]

Sinónimo de run().

Definición en la línea 152 del archivo BUnit.h.

bool TestCase::runTest (  )  [inline, inherited]

Sinónimo de run().

Definición en la línea 153 del archivo BUnit.h.

void TestCase::setUp (  )  [inline, virtual, inherited]

Establece el ambiente en que se realizará cada prueba.

Reimplementado en ADH::test_Graph, y test_rational< INT >.

Definición en la línea 297 del archivo BUnit.h.

void TestCase::tearDown (  )  [inline, virtual, inherited]

Destruye el ambiente de prueba.

Definición en la línea 300 del archivo BUnit.h.

int TestCase::countTestCases (  )  const [inline, inherited]

Cantidad de casos de prueba que serán ejecutados.

Definición en la línea 157 del archivo BUnit.h.

int TestCase::runCount (  )  const [inline, inherited]

Cantidad total de pruebas realizadas.

Definición en la línea 161 del archivo BUnit.h.

virtual int TestCase::errorCount (  )  const [inline, virtual, inherited]

Cantidad de pruebas que han producido error.

Ver también:
reset().

Reimplementado en TestSuite< TestCase >.

Definición en la línea 163 del archivo BUnit.h.

int TestCase::failureCount (  )  const [inline, inherited]

Siempre retorna 0 (cero): "Cantidad de fallas".

Definición en la línea 167 del archivo BUnit.h.

virtual int TestCase::successCount (  )  const [inline, virtual, inherited]

Cantidad de pruebas exitosas.

Ver también:
reset().

Reimplementado en TestSuite< TestCase >.

Definición en la línea 169 del archivo BUnit.h.

bool TestCase::wasSuccessful (  )  const [inline, inherited]

Retorna "true" si todas las pruebas han sido exitosas.

Definición en la línea 172 del archivo BUnit.h.

void TestCase::reset (  )  [inline, virtual, inherited]

Elimina todas las pruebas realizadas.

    {{  // test::reset()
        class MyTest : public TestCase {
        public:
            bool run() {
                assertTrue( 1 == 2 ); // Error !!!
                assertTrue( 1 == 1 ); // Ok
                assertTrue( 2 == 2 ); // Ok
                return wasSuccessful();
            }
        }; // MyTest
        MyTest thisTest;
        for ( int i=0; i<11; ++i ) {
            thisTest.run(); // corre 11 veces la misma prueba
        }
        assertTrue( 11 == thisTest.errorCount() );   // ( 1 == 2 ) x 11
        assertTrue( 22 == thisTest.successCount() ); // ( 1 == 1 ) && ( 2 == 2 )
        assertTrue( 33 == thisTest.runCount() );     // 33 == 11+22
        assertTrue( "" != thisTest.errorString() );  // 11 errores registrados
        std::string remember = thisTest.getName();

        thisTest.reset(); // Anula los contadores

        assertTrue( 0 == thisTest.errorCount() );
        assertTrue( 0 == thisTest.successCount() );
        assertTrue( 0 == thisTest.runCount() );
        assertTrue( "" == thisTest.errorString() );
        assertTrue( remember == thisTest.getName() ); // reset() no borra el nombre
    }}
Ver también:
test_BUnit::test_reset()

Reimplementado en TestSuite< TestCase >.

Definición en la línea 242 del archivo BUnit.h.

std::string TestCase::getName (  )  const [inline, inherited]

Obtiene el nombre de la prueba.

Ver también:
setName().

Definición en la línea 247 del archivo BUnit.h.

void TestCase::setName ( const char *  name = 0  )  [inline, inherited]

Le cambia el nombre a la prueba.

    {{  // test::setName()
        class MyTest : public TestCase {
        public:
            bool run() {
                assertTrue( 2 == 2 );
                return wasSuccessful();
            }
        }; // MyTest
        MyTest thisTest;
        assertTrue(       "chorlito" != thisTest.getName() );
        thisTest.setName( "chorlito" );
        assertTrue(       "chorlito" == thisTest.getName() );
    }}
Ver también:
test_BUnit::test_setName()

Definición en la línea 257 del archivo BUnit.h.

const std::string TestCase::toString (  )  const [inline, virtual, inherited]

Hilera "enooorme" que contiene copia del registro de pruebas no exitosas, separados por "\n".

    =\_error: 1 == 0
    =/ (125) X:\DIR\SubDir\test_BUnit.cpp
    =\_error: 4 == 0
    =/ (128) X:\DIR\SubDir\test_BUnit.cpp

Reimplementado en TestSuite< TestCase >.

Definición en la línea 407 del archivo BUnit.h.

template<class T>
std::string TestCase::toString ( const T &  val  )  [inline, static, inherited]

Retorna una hilera que contiene el valor de val.

Definición en la línea 965 del archivo BUnit.h.

const std::string TestCase::summary (  )  const [inline, virtual, inherited]

Retorna un hilera que contiene el nombre, cantidad de éxitos y cantidad de errores de la prueba.

Reimplementado en TestSuite< TestCase >.

Definición en la línea 541 del archivo BUnit.h.

const std::string TestCase::toXML (  )  const [inline, virtual, inherited]

Hilera XML que contiene una copia de las pruebas no exitosas.

    <error file="X:\DIR\SubDir\test_BUnit.cpp" line="125" message="1 == 0"/>
    <error file="X:\DIR\SubDir\test_BUnit.cpp" line="128" message="4 == 0"/>

Reimplementado en TestSuite< TestCase >.

Definición en la línea 439 del archivo BUnit.h.

const std::string TestCase::report (  )  const [inline, inherited]

Retorna la hilera encabezado summary() seguido de errores toString().

Definición en la línea 182 del archivo BUnit.h.

const std::string TestCase::errorString (  )  const [inline, inherited]

Sinónimo de toString().

Definición en la línea 184 del archivo BUnit.h.

void TestCase::recordSuccess (  )  [inline, protected, inherited]

Registra como exitoso el resultado de una prueba.

Definición en la línea 188 del archivo BUnit.h.

void TestCase::recordError ( const char *  label,
const char *  fname,
int  lineno,
bool  must_copy = false 
) [inline, protected, inherited]

Registra que la prueba no tuvo éxito.

Este método es invocado usando la macro BUnit_ERROR().

Definición en la línea 355 del archivo BUnit.h.

void TestCase::recordError ( const std::string &  label,
const char *  fname,
int  lineno 
) [inline, protected, inherited]

Registra que la prueba no tuvo éxito.

Definición en la línea 388 del archivo BUnit.h.

void TestCase::testThis ( bool  cond,
const std::string &  label,
const char *  fname,
long  lineno 
) [inline, protected, inherited]

Sinónimo de testThis();.

Definición en la línea 335 del archivo BUnit.h.

void TestCase::testThis ( bool  cond,
const char *  label,
const char *  fname,
long  lineno,
bool  must_copy = false 
) [inline, protected, inherited]

Efectúa la prueba y registra el resultado.

Este método es invocado usando la macro BUnit_TEST().

    {{  // test::testThis()
        class MyTest : public TestCase {
        public:
            bool run() {
                bool dont_copy = false;
                testThis( 2 == 2, "2 es 2", __FILE__, __LINE__, dont_copy ); // Ok
                testThis( 1 == 2, "1 es 2", __FILE__, __LINE__, dont_copy ); // Error(#1)
                testThis( 2 == 1, "2 es 1", __FILE__, __LINE__, dont_copy ); // Error(#2)
                return wasSuccessful();
            }
        }; // MyTest
        MyTest thisTest;
        assertTrue( thisTest.wasSuccessful() ); // no se ha ejecutador run()
        thisTest.run(); // produce 2 errores
        assertTrue( thisTest.errorCount() == 2 );
        assertTrue( ! thisTest.wasSuccessful() );
    }}
Ver también:
test_BUnit::test_testThis()

Definición en la línea 324 del archivo BUnit.h.

int TestCase::nPass (  )  const [inline, protected, inherited]

Sinónimo de successCount() [OBSOLETO].

Obsoleto:

Definición en la línea 205 del archivo BUnit.h.

int TestCase::nError (  )  const [inline, protected, inherited]

Sinónimo de errorCount() [OBSOLETO].

Obsoleto:

Definición en la línea 207 del archivo BUnit.h.


Documentación de las funciones relacionadas y clases amigas

friend class TestSuite [friend, inherited]

Colección de pruebas.

Definición en la línea 203 del archivo BUnit.h.

template<class TestCase>
void do_toXML ( const TestCase tc,
std::basic_ostringstream< char > &  ost 
) [friend, inherited]

Le agrega a ost la hilera de todas las pruebas no exitosas de *tc en formato XML.

Definición en la línea 449 del archivo BUnit.h.

template<class TestCase>
void do_toString ( const TestCase tc,
std::basic_ostringstream< char > &  ost 
) [friend, inherited]

Le agrega a ost la hilera de todas las pruebas no exitosas de *tc.

Definición en la línea 416 del archivo BUnit.h.


Documentación de los datos miembro

int TestCase::m_pass [protected, inherited]

Cantidad de pruebas exitosas.

Definición en la línea 137 del archivo BUnit.h.

int TestCase::m_error [protected, inherited]

Cantidad de pruebas que han producido error.

Definición en la línea 138 del archivo BUnit.h.

const char* TestCase::m_name [protected, inherited]

Nombre del caso de prueba.

Definición en la línea 139 del archivo BUnit.h.

bool TestCase::m_test_suite_destroy [protected, inherited]

Indica si la prueba está en memoria dinámica.

Definición en la línea 140 del archivo BUnit.h.

std::list<TestCaseError> TestCase::m_errorList [protected, inherited]

Contenedor para registrar las pruebas que han producido error.

Definición en la línea 142 del archivo BUnit.h.


La documentación para esta clase fué generada a partir del siguiente fichero:
Generado el Mon Dec 10 10:14:55 2007 para Modulo [B]asico para prueba [unit]aria de programas: por  doxygen 1.5.4