|
Modulo [B]asico para prueba [unit]aria de programas:
|
Clase simple para probar la clase ADH_Graph.
Más...
Métodos públicos | |
| test_Graph () | |
| Constructor por defecto. | |
| void | test_connected () |
Prueba Graph::connected(). | |
| void | test_connected_cycle () |
Prueba Graph::connected() con un grafo que tiene ciclos. | |
| void | test_isVertex () |
Prueba Graph::isVertex() | |
| void | test_vertexList () |
Prueba Graph::test_vertexList() | |
| void | setUp () |
| Establece el ambiente en que se realizará la prueba. | |
| void | do_cout (std::ostream &COUT) |
Graba en COUT el valor de G (Fixture). | |
| void | do_dump (std::ostream &COUT) |
Graba en COUT el valor de G (Fixture). | |
| void | test_Rep_const_iterator () |
Prueba Graph::Rep_const_iterator(). | |
| void | test_isConnected () |
Prueba Graph::test_isConnected() | |
| void | test_isCircuit () |
Prueba Graph::test_isCircuit() que tiene ciclos. | |
| void | test_spanningTree () |
Prueba Graph::test_spanningTree(). | |
| bool | run () |
Ejecuta las pruebas para test_Graph. | |
| void | set_cycles (bool v) |
Define si run() invoca test_connected_cycle();. | |
| void | runBare () |
Ejecuta la prueba setUp(); run(); tearDown();. | |
| bool | Run () |
Sinónimo de run(). | |
| bool | runTest () |
Sinónimo de run(). | |
| 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< TestCaseFailure > | m_failureList |
| Contenedor para almacenar las pruebas que han producido fallas. | |
Atributos privados | |
| bool | m_cycle |
Indica si run() invoca test_connected_cycle();. | |
| Graph | G |
| Valor usado en las pruebas. | |
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. | |
Clase simple para probar la clase ADH_Graph.
Definición en la línea 18 del archivo test_Graph.cpp.
| ADH::test_Graph::test_Graph | ( | ) | [inline] |
Constructor por defecto.
Definición en la línea 22 del archivo test_Graph.cpp.
| void ADH::test_Graph::test_connected | ( | ) |
Prueba Graph::connected().
Definición en la línea 113 del archivo test_Graph.cpp.
Prueba Graph::connected() con un grafo que tiene ciclos.
---<----
/ \
A(1) C(1)<-------+
/ \ / \ |
/ \ / \ |
F->--A(2)-->-B-> ->D->-+
\ / \ /
\ / \ /
A(3) C(2)
Definición en la línea 235 del archivo test_Graph.cpp.
| void ADH::test_Graph::test_isVertex | ( | ) |
Prueba Graph::isVertex()
Definición en la línea 255 del archivo test_Graph.cpp.
| void ADH::test_Graph::test_vertexList | ( | ) |
Prueba Graph::test_vertexList()
Definición en la línea 295 del archivo test_Graph.cpp.
| void ADH::test_Graph::setUp | ( | ) | [virtual] |
Establece el ambiente en que se realizará la prueba.
TestCase::run() es un método abstracto, para facilitar la programación lo usual es que el programador no incluya invocaciones a TestCase::setUp() y TestCase::tearDown() pues es más fácil dejar que lo haga TestSuite<TestCase>::runBare().TestCase::runBare(), el método TestCase::run() no establece el ambiente de prueba porque no invoca ni a TestCase::setUp() antes de la prueba ni a TestCase::tearDown() después de la prueba.TestSuite<TestCase>::runBare() invoca los métodos TestCase::setUp() y TestCase::tearDown() cuando ejecuta cada prueba.TestSuite para ejecutarlas con TestSuite<TestCase>::runBare(). Reimplementado de TestCase.
Definición en la línea 64 del archivo test_Graph.cpp.
| void ADH::test_Graph::do_cout | ( | std::ostream & | COUT | ) |
Graba en COUT el valor de G (Fixture).
Definición en la línea 79 del archivo test_Graph.cpp.
| void ADH::test_Graph::do_dump | ( | std::ostream & | COUT | ) |
Graba en COUT el valor de G (Fixture).
Definición en la línea 84 del archivo test_Graph.cpp.
Prueba Graph::Rep_const_iterator().
Definición en la línea 94 del archivo test_Graph.cpp.
| void ADH::test_Graph::test_isConnected | ( | ) |
Prueba Graph::test_isConnected()
Definición en la línea 317 del archivo test_Graph.cpp.
| void ADH::test_Graph::test_isCircuit | ( | ) |
Prueba Graph::test_isCircuit() que tiene ciclos.
Definición en la línea 343 del archivo test_Graph.cpp.
| void ADH::test_Graph::test_spanningTree | ( | ) |
Prueba Graph::test_spanningTree().
Definición en la línea 426 del archivo test_Graph.cpp.
| bool ADH::test_Graph::run | ( | ) | [virtual] |
Ejecuta las pruebas para test_Graph.
Implementa TestCase.
Definición en la línea 41 del archivo test_Graph.cpp.
| void ADH::test_Graph::set_cycles | ( | bool | v | ) | [inline] |
Define si run() invoca test_connected_cycle();.
Definición en la línea 35 del archivo test_Graph.cpp.
| void TestCase::runBare | ( | ) | [inline, inherited] |
Ejecuta la prueba setUp(); run(); tearDown();.
run(), este método sí establece el ambiente de prueba invocando setUp() y tearDown() antes y después de hacer la prueba. {{ // test::run()
class MyTest : public TestCase {
int m_val;
public:
MyTest() : m_val(0) {} // init: 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.failureString() );
SSS.runBare(); // Ok ==> setUp() sets [m_val == 1]
assertTrue( "" == SSS.toXML() );
SSS.run(); // Failure: [m_val == 2] ==> value set by tearDown()
std::string sssXML = SSS.toXML();
assertTrue( "" != sssXML ); // SSS contains failures.
assertTrue( sssXML.find("m_val") != string::npos );
assertTrue( SSS.runCount() == 2+2 );
}}
Reimplementado en TestSuite< TestCase >.
| bool TestCase::Run | ( | ) | [inline, inherited] |
| bool TestCase::runTest | ( | ) | [inline, inherited] |
| void TestCase::tearDown | ( | ) | [inline, virtual, inherited] |
| int TestCase::countTestCases | ( | ) | const [inline, inherited] |
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.
TestCase."assert()" de BUnit, como lo son assertTrue(), fail_Msg(), assertEquals_Delta(), u otros como BUnit_SUCCESS() or BUnit_TEST().TestSuite<>. Reimplementado en TestSuite< TestCase >.
| int TestCase::runCount | ( | ) | const [inline, inherited] |
Cantidad total de pruebas realizadas.
successCount()+failureCount()+errorCount(). | int TestCase::failureCount | ( | ) | const [inline, virtual, inherited] |
| int TestCase::errorCount | ( | ) | const [inline, inherited] |
Siempre retorna 0 (cero): "Cantidad de errores".
| int TestCase::successCount | ( | ) | const [inline, virtual, inherited] |
| bool TestCase::wasSuccessful | ( | ) | const [inline, inherited] |
Retorna "true" si todas las pruebas han sido exitosas.
(successCount() == runCount()) | void TestCase::reset | ( | ) | [inline, virtual, inherited] |
Elimina todas las pruebas realizadas.
{{ // 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
}}
Reimplementado en TestSuite< TestCase >.
| std::string TestCase::getName | ( | ) | const [inline, inherited] |
| void TestCase::setName | ( | const char * | name = 0 | ) | [inline, inherited] |
Le cambia el nombre a la prueba por "name".
"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
}
}}
| const std::string TestCase::toString | ( | ) | const [inline, virtual, inherited] |
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 >.
| std::string TestCase::toString | ( | const T & | val | ) | [static, inherited] |
Retorna una hilera std::string contruida desde el valor de val.
toString() with standard C++ | const std::string TestCase::summary | ( | ) | const [inline, virtual, inherited] |
Retorna un hilera que contiene el nombre, cantidad de éxitos y fallas.
Reimplementado en TestSuite< TestCase >.
| const std::string TestCase::toXML | ( | ) | const [inline, virtual, inherited] |
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 >.
| const std::string TestCase::report | ( | ) | const [inline, inherited] |
Retorna la hilera encabezado summary() seguido toString().
| const std::string TestCase::failureString | ( | ) | const [inline, inherited] |
Sinónimo de toString().
| void TestCase::recordSuccess | ( | ) | [inline, protected, inherited] |
| void TestCase::recordFailure | ( | const char * | label, |
| const char * | fname, | ||
| int | lineno, | ||
| bool | must_copy = false |
||
| ) | [inline, protected, inherited] |
Registra que la prueba no tuvo éxito.
"fname" y "lineno" indican el archivo y el renglón en donde se ejecuta la prueba."fname" y "lineno" se obtienen invocando las macros globales "__FILE__" y "__LINE__"."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."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().
| void TestCase::recordFailure | ( | const std::string & | label, |
| const char * | fname, | ||
| int | lineno | ||
| ) | [inline, protected, inherited] |
| 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 su resultado.
successCount().toString() ese hecho."cond"."fname" y "lineno" indican el archivo y el renglón en donde se ejecuta la prueba."fname" y "lineno" se obtienen con las macros globales "__FILE__" y "__LINE__"."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."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() );
}}
| void TestCase::testThis | ( | bool | cond, |
| const std::string & | label, | ||
| const char * | fname, | ||
| long | lineno | ||
| ) | [inline, protected, inherited] |
Sinónimo de testThis().
| int TestCase::nPass | ( | ) | const [inline, protected, inherited] |
| int TestCase::nError | ( | ) | const [inline, protected, inherited] |
friend class TestSuite [friend, inherited] |
| void do_toString | ( | const TestCase * | tc, |
| std::basic_ostringstream< char > & | ost | ||
| ) | [friend, inherited] |
bool ADH::test_Graph::m_cycle [private] |
Indica si run() invoca test_connected_cycle();.
Definición en la línea 19 del archivo test_Graph.cpp.
Graph ADH::test_Graph::G [private] |
Valor usado en las pruebas.
Definición en la línea 20 del archivo test_Graph.cpp.
int TestCase::m_pass [protected, inherited] |
int TestCase::m_failure [protected, inherited] |
const char * TestCase::m_name [protected, inherited] |
bool TestCase::m_test_suite_destroy [protected, inherited] |
std::list< TestCaseFailure > TestCase::m_failureList [protected, inherited] |
1.8.0