Modulo [B]asico para prueba [unit]aria de programas:
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Valores de enumeraciones Amigas 'defines'
Métodos públicos | Métodos públicos estáticos | Métodos protegidos | Atributos protegidos | Métodos privados | Amigas
Referencia de la Clase TestCase

Cada caso de prueba es una instancia derivada de esta clase abstracta. Más...

#include <BUnit.h>

Diagrama de herencias de TestCase
ADH::test_Graph test0 test1 test_BUnit test_rational< INT > TestSuite< TestCase >

Lista de todos los miembros.

Métodos públicos

 TestCase (const char *name=0)
 Constructor.
virtual ~TestCase ()
 Destructor.
virtual bool run ()=0
 [virtual] ==> Ejecuta la prueba y retorna "false" si produce error.
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á la prueba.
virtual void tearDown ()
 Destruye el ambiente de prueba.
int countTestCases () const
 1 == Cantidad de casos de prueba.
int runCount () const
 Cantidad total de pruebas realizadas.
virtual int failureCount () const
 Cantidad de pruebas que fallaron.
int errorCount () const
 Siempre retorna 0 (cero): "Cantidad de errores".
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 por "name".
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 fallas.
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 toString().
const std::string failureString () const
 Sinónimo de toString().

Métodos públicos estáticos

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

Métodos protegidos

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

Atributos protegidos

int m_pass
 Cantidad de pruebas exitosas.
int m_failure
 Cantidad de pruebas que han fallado.
const char * m_name
 Nombre del caso de prueba.
bool m_test_suite_destroy
 Contiene "true" si la prueba está almacenada en memoria dinámica.
std::list< TestCaseFailurem_failureList
 Contenedor para almacenar las pruebas que han producido fallas.

Métodos privados

virtual bool iAmTestSuite () const
 Retorna false para TestCase.
 TestCase (const TestCase &)
 Esta declaración "private" prohibe la copia de casos de prueba.
TestCaseoperator= (const TestCase &)
 Esta declaración "private" prohibe la copia de casos de prueba.

Amigas

class TestSuite
 Colección de pruebas.
class test_BUnit
 Clase de prueba para BUnit.h.
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

Cada caso de prueba es una instancia derivada de esta clase abstracta.

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


Documentación del constructor y destructor

TestCase::TestCase ( const char *  name = 0) [inline]

Constructor.

Si no se indica el nombre en "name", después el nombre se obtiene invocando typeid(*this).name().

    {{  // test::constructor()
        test_BUnit thisTest;
        assertTrue( string::npos != thisTest.getName().find( "test_BUnit" ) );
        assertTrue( thisTest.failureCount() == 0 );
        assertTrue( thisTest.countTestCases() == 1 );
        assertTrue( thisTest.successCount() == 0 );
        assertTrue( thisTest.runCount() == 0 );
        assertTrue( thisTest.failureString() == "" );
    }}

Ver también:
test_BUnit::test_constructor()

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

TestCase::~TestCase ( ) [inline, virtual]

Destructor.

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

TestCase::TestCase ( const TestCase ) [private]

Esta declaración "private" prohibe la copia de casos de prueba.


Documentación de las funciones miembro

bool TestCase::run ( ) [pure virtual]

[virtual] ==> Ejecuta la prueba y retorna "false" si produce error.

[***] Siempre es necesario redefinir el método run().

Ver también:
runBare().

Implementado en TestSuite< TestCase >, test_rational< INT >, ADH::test_Graph, test1, test_BUnit y test0.

void TestCase::runBare ( ) [inline]

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

Reimplementado en TestSuite< TestCase >.

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

bool TestCase::Run ( ) [inline]

Sinónimo de run().

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

bool TestCase::runTest ( ) [inline]

Sinónimo de run().

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

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

Establece el ambiente en que se realizará la prueba.

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

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

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

Destruye el ambiente de prueba.

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

int TestCase::countTestCases ( ) const [inline]

1 == Cantidad de casos de prueba.

El valor retornado siempre es uno 1 porque la clase TestCase representa un único caso de pruebas. Para el contenedor TestSuite<> el valor retornado puede ser mayor a 1.

  • Un "caso de prueba" es una clase derivada de la clase TestCase.
  • Una "prueba" se cuenta cuando tiene éxito o fracasa.
  • Una "prueba" se cuenta cuando el método protegido TestCase::testThis() es ejecutado, ya sea directamente o a través de cualquiera de los macros "assert()" de BUnit, como lo son assertTrue(), fail_Msg(), assertEquals_Delta(), u otros como BUnit_SUCCESS() or BUnit_TEST().
  • Un "caso de prueba" generalmente incluye muchas "pruebas". Una colección de "casos de prueba" reside en una instancia derivada de la clase TestSuite<>.

Reimplementado en TestSuite< TestCase >.

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

int TestCase::runCount ( ) const [inline]

Cantidad total de pruebas realizadas.

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

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

Cantidad de pruebas que fallaron.

Ver también:
reset().

Reimplementado en TestSuite< TestCase >.

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

int TestCase::errorCount ( ) const [inline]

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

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

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

Cantidad de pruebas exitosas.

Ver también:
reset().

Reimplementado en TestSuite< TestCase >.

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

bool TestCase::wasSuccessful ( ) const [inline]

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

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

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

Elimina todas las pruebas realizadas.

  • Anula los contadores de pruebas porque deja la clase en el estado inicial que tuvo al ser construida.
  • Borra el registro de pruebas no exitosas.
  • No borra el nombre de la prueba.
        {{  // test::reset()
            class MyTest : public TestCase {
            public:
                bool run() {
                    assertTrue( 1 == 2 ); // Failure !!!
                    assertTrue( 1 == 1 ); // Ok
                    assertTrue( 2 == 2 ); // Ok
                    return wasSuccessful();
                }
            }; // MyTest
            MyTest thisTest;
            for ( int i=0; i<11; ++i ) {
                thisTest.run(); // runs the same test 11 times
            }
            assertTrue( 11 == thisTest.failureCount() );   // ( 1 == 2 ) x 11
            assertTrue( 22 == thisTest.successCount() ); // ( 1 == 1 ) && ( 2 == 2 )
            assertTrue( 33 == thisTest.runCount() );     // 33 == 11+22
            assertTrue( "" != thisTest.failureString() );  // 11 recorded failures
            std::string remember = thisTest.getName();
    
            thisTest.reset(); // Anula los contadores
    
            assertTrue( 0 == thisTest.failureCount() );
            assertTrue( 0 == thisTest.successCount() );
            assertTrue( 0 == thisTest.runCount() );
            assertTrue( "" == thisTest.failureString() );
            assertTrue( remember == thisTest.getName() ); // reset() won´t change the name
        }}
    
    Ver también:
    test_BUnit::test_reset()

Reimplementado en TestSuite< TestCase >.

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

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

Obtiene el nombre de la prueba.

Ver también:
setName().

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

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

Le cambia el nombre a la prueba por "name".

  • Si "name" es una hilera o puntero nulo, después usa typeid(*this).name() para obtener el nombre de 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() );
            {
            //  thisTest.setName( std::string("chorlito") ); // won´t compile
                thisTest.setName( std::string("chorlito").c_str() ); // bad practice
                std::string V("boom!");
                assertTrue( 0==strcmp( V.c_str() , "boom!") );
                assertTrue( "chorlito" != thisTest.getName() ); // c_str() uses
                assertTrue( "boom!"    == thisTest.getName() ); // static data
            }
        }}
    
    Ver también:
    test_BUnit::test_setName()

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

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

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

Huuuge string that holds a copy of non successfull test, separated by "\n".

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

Reimplementado en TestSuite< TestCase >.

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

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

Retorna un hilera que contiene el nombre, cantidad de éxitos y fallas.

Reimplementado en TestSuite< TestCase >.

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

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

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

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

Reimplementado en TestSuite< TestCase >.

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

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

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

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

const std::string TestCase::failureString ( ) const [inline]

Sinónimo de toString().

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

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

Retorna una hilera std::string contruida desde el valor de val.

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

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

Registra como exitoso el resultado de una prueba.

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

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

Registra que la prueba no tuvo éxito.

  • Los valores "fname" y "lineno" indican el archivo y el renglón en donde se ejecuta la prueba.
  • Usualmente los valores de "fname" y "lineno" se obtienen invocando las macros globales "__FILE__" y "__LINE__".
  • El valor "must_copy" indica que es necesario hacer una copia de la hilera "label" en memoria dinámica. Este memoria dinámica será destruida cuando el caso de prueba sea destruido o cuando el método TestCase::reset() sea invocado.
  • En la mayor parte de los casos, la hilera "label" es una constante generada por el preprocesador al usar la macro #cond; como esta hilera constante no está almacenada en la memoria dinámica no debe ser destruida.

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

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

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

Registra que la prueba no tuvo éxito.

  • En BUnit.h no se hace diferencia entre "fallas" y "errores".

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

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

Efectúa la prueba y registra su resultado.

  • Si la prueba fue exitosa sólo incrementa la cantidad de éxitos successCount().
  • Si la prueba no tuvo éxito reporta en toString() ese hecho.
  • El resultado de la prueba es "cond".
  • Los valores "fname" y "lineno" indican el archivo y el renglón en donde se ejecuta la prueba.
  • Usualmente los valores de "fname" y "lineno" se obtienen con las macros globales "__FILE__" y "__LINE__".
  • El valor "must_copy" indica que es necesario hacer una copia de la hilera "label", copia que será destruida cuando el registro de pruebas no exitosas sea borrado.
  • En la mayor parte de los casos, la hilera "label" es una constante generada por el preprocesador al usar la macro #cond y por eso su memoria no debe ser retornada. 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 is 2", __FILE__, __LINE__, dont_copy ); // Ok
                    testThis( 1 == 2, "1 is 2", __FILE__, __LINE__, dont_copy ); // failure #1
                    testThis( 2 == 1, "2 is 1", __FILE__, __LINE__, dont_copy ); // failure #2
                    return wasSuccessful();
                }
            }; // MyTest
            MyTest thisTest;
            assertTrue( thisTest.wasSuccessful() ); // run() has not been executed
            thisTest.run(); // 2 failures
            assertTrue( thisTest.failureCount() == 2 );
            assertTrue( ! thisTest.wasSuccessful() );
        }}
    
    Ver también:
    test_BUnit::test_testThis()

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

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

Sinónimo de testThis().

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

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

Sinónimo de successCount() [OBSOLETO].

Obsoleto:

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

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

Sinónimo de failureCount() [OBSOLETO].

Obsoleto:

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

bool TestCase::iAmTestSuite ( ) const [inline, private, virtual]

Retorna false para TestCase.

Reimplementado en TestSuite< TestCase >.

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

TestCase & TestCase::operator= ( const TestCase ) [private]

Esta declaración "private" prohibe la copia de casos de prueba.


Documentación de las funciones relacionadas y clases amigas

friend class TestSuite [friend]

Colección de pruebas.

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

friend class test_BUnit [friend]

Clase de prueba para BUnit.h.

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

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

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

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

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

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

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


Documentación de los datos miembro

int TestCase::m_pass [protected]

Cantidad de pruebas exitosas.

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

int TestCase::m_failure [protected]

Cantidad de pruebas que han fallado.

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

const char * TestCase::m_name [protected]

Nombre del caso de prueba.

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

Contiene "true" si la prueba está almacenada en memoria dinámica.

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

std::list< TestCaseFailure > TestCase::m_failureList [protected]

Contenedor para almacenar las pruebas que han producido fallas.

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


La documentación para esta clase fue generada a partir del siguiente fichero: