Modulo [B]asico para prueba [unit]aria de programas:
|
Prueba la clase rational<INT>
.
Más...
Métodos públicos | |
virtual void | setUp () |
Establece el ambiente de prueba. | |
void | super_numerotes (bool sl=false) |
Define si se corren o no las pruebas con super-numerotototes. | |
void | super_lerdo (bool sl=false) |
Define si se corren las pruebas que duran mucho. | |
bool | run () |
Método principal de la prueba. | |
void | rat_tst () |
Antiguo programa de prueba para la clase rational<INT> . | |
void | run_rest () |
Método complementario de prueba. | |
void | test_quiebra_Narvaja () |
Datos de prueba que sirven para quebrar la implementación BigNum de Narvaja. | |
void | test_constructor () |
Datos de prueba para los constructores de la clase rational<INT> . | |
void | test_destructor () |
Datos de prueba para el destructor de la clase rational<INT> . | |
void | test_set () |
Datos de prueba para rational<INT>::set() . | |
void | test_op_equal () |
Datos de prueba para rational<INT>::operator=() . | |
void | test_num_den () |
Datos de prueba para rational<INT>::num() y rational<INT>::den() . | |
void | test_swap () |
Datos de prueba para rational<INT>::swap() . | |
void | test_op_add_equal () |
Datos de prueba para rational<INT>::operator +=() y rational<INT>::operator -=() . | |
void | test_op_add () |
Datos de prueba para rational<INT>::operator +() y rational<INT>::operator -() . | |
void | test_op_mult_equal () |
Datos de prueba para rational<INT>::operator *=() y rational<INT>::operator /=() . | |
void | test_op_mult () |
Datos de prueba para rational<INT>::operator *() y rational<INT>::operator /() . | |
void | test_op_minus () |
Datos de prueba para rational<INT>::operator -() . | |
void | test_fromString () |
Datos de prueba para rational<INT>::test_fromString() . | |
void | test_op_comp () |
Datos de prueba para todos los operadores de comparación de rational<INT> . | |
void | test_op_in () |
Datos de prueba para operator>>() . | |
void | test_op_out () |
Datos de prueba para operator<<() . | |
void | test_simplify () |
Datos de prueba para rational<INT>::test_simplify() . | |
void | test_check_ok () |
Datos de prueba para check_ok( const rational<INT>& ) . | |
void | test_mcd () |
Datos de prueba para la función mcd() . | |
void | test_op_cpp () |
Datos de prueba para los incrementadores c++ y --c . | |
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 | |
rational< INT > | m_half |
rational< INT > | m_quarter |
rational< INT > | m_one |
rational< INT > | m_half_neg |
rational< INT > | m_quarter_neg |
rational< INT > | m_one_neg |
rational< INT > | m_sep |
rational< INT > | m_sep_neg |
bool | m_super_lerdo |
Indica si hay que probar con numerotototes. | |
bool | m_super_numerotes |
Indica si se corren las pruebas que duran mucho. | |
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. | |
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 . |
Prueba la clase rational<INT>
.
Definición en la línea 33 del archivo test_rational.cpp.
void test_rational< INT >::setUp | ( | ) | [virtual] |
Establece el ambiente de prueba.
Reimplementado de TestCase.
Definición en la línea 108 del archivo test_rational.cpp.
void test_rational< INT >::super_numerotes | ( | bool | sl = false | ) | [inline] |
Define si se corren o no las pruebas con super-numerotototes.
Definición en la línea 43 del archivo test_rational.cpp.
void test_rational< INT >::super_lerdo | ( | bool | sl = false | ) | [inline] |
Define si se corren las pruebas que duran mucho.
Definición en la línea 47 del archivo test_rational.cpp.
bool test_rational< INT >::run | ( | ) | [virtual] |
Método principal de la prueba.
setUp()
Implementa TestCase.
Definición en la línea 81 del archivo test_rational.cpp.
void test_rational< INT >::rat_tst | ( | ) |
Antiguo programa de prueba para la clase rational<INT>
.
Definición en la línea 458 del archivo test_rational.cpp.
void test_rational< INT >::run_rest | ( | ) |
Método complementario de prueba.
run()
. Definición en la línea 575 del archivo test_rational.cpp.
void test_rational< INT >::test_quiebra_Narvaja | ( | ) |
Datos de prueba que sirven para quebrar la implementación BigNum
de Narvaja.
Definición en la línea 131 del archivo test_rational.cpp.
void test_rational< INT >::test_constructor | ( | ) |
Datos de prueba para los constructores de la clase rational<INT>
.
Definición en la línea 166 del archivo test_rational.cpp.
void test_rational< INT >::test_destructor | ( | ) |
Datos de prueba para el destructor de la clase rational<INT>
.
Definición en la línea 181 del archivo test_rational.cpp.
void test_rational< INT >::test_set | ( | ) |
Datos de prueba para rational<INT>::set()
.
Definición en la línea 187 del archivo test_rational.cpp.
void test_rational< INT >::test_op_equal | ( | ) |
Datos de prueba para rational<INT>::operator=()
.
Definición en la línea 213 del archivo test_rational.cpp.
void test_rational< INT >::test_num_den | ( | ) |
Datos de prueba para rational<INT>::num()
y rational<INT>::den()
.
Definición en la línea 200 del archivo test_rational.cpp.
void test_rational< INT >::test_swap | ( | ) |
Datos de prueba para rational<INT>::swap()
.
Definición en la línea 226 del archivo test_rational.cpp.
void test_rational< INT >::test_op_add_equal | ( | ) |
Datos de prueba para rational<INT>::operator +=()
y rational<INT>::operator -=()
.
Definición en la línea 238 del archivo test_rational.cpp.
void test_rational< INT >::test_op_add | ( | ) |
Datos de prueba para rational<INT>::operator +()
y rational<INT>::operator -()
.
Definición en la línea 253 del archivo test_rational.cpp.
void test_rational< INT >::test_op_mult_equal | ( | ) |
Datos de prueba para rational<INT>::operator *=()
y rational<INT>::operator /=()
.
Definición en la línea 268 del archivo test_rational.cpp.
void test_rational< INT >::test_op_mult | ( | ) |
Datos de prueba para rational<INT>::operator *()
y rational<INT>::operator /()
.
Definición en la línea 283 del archivo test_rational.cpp.
void test_rational< INT >::test_op_minus | ( | ) |
Datos de prueba para rational<INT>::operator -()
.
Definición en la línea 298 del archivo test_rational.cpp.
void test_rational< INT >::test_fromString | ( | ) |
Datos de prueba para rational<INT>::test_fromString()
.
Definición en la línea 311 del archivo test_rational.cpp.
void test_rational< INT >::test_op_comp | ( | ) |
Datos de prueba para todos los operadores de comparación de rational<INT>
.
Definición en la línea 355 del archivo test_rational.cpp.
void test_rational< INT >::test_op_in | ( | ) |
Datos de prueba para operator>>()
.
Definición en la línea 393 del archivo test_rational.cpp.
void test_rational< INT >::test_op_out | ( | ) |
Datos de prueba para operator<<()
.
Definición en la línea 371 del archivo test_rational.cpp.
void test_rational< INT >::test_simplify | ( | ) |
Datos de prueba para rational<INT>::test_simplify()
.
Definición en la línea 325 del archivo test_rational.cpp.
void test_rational< INT >::test_check_ok | ( | ) |
Datos de prueba para check_ok( const rational<INT>& )
.
Definición en la línea 340 del archivo test_rational.cpp.
void test_rational< INT >::test_mcd | ( | ) |
Datos de prueba para la función mcd()
.
Definición en la línea 409 del archivo test_rational.cpp.
void test_rational< INT >::test_op_cpp | ( | ) |
Datos de prueba para los incrementadores c++
y --c
.
Definición en la línea 421 del archivo test_rational.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] |
rational<INT> test_rational< INT >::m_half [protected] |
Definición en la línea 35 del archivo test_rational.cpp.
rational<INT> test_rational< INT >::m_quarter [protected] |
Definición en la línea 35 del archivo test_rational.cpp.
rational<INT> test_rational< INT >::m_one [protected] |
Definición en la línea 35 del archivo test_rational.cpp.
rational<INT> test_rational< INT >::m_half_neg [protected] |
Definición en la línea 36 del archivo test_rational.cpp.
rational<INT> test_rational< INT >::m_quarter_neg [protected] |
Definición en la línea 36 del archivo test_rational.cpp.
rational<INT> test_rational< INT >::m_one_neg [protected] |
Definición en la línea 36 del archivo test_rational.cpp.
rational<INT> test_rational< INT >::m_sep [protected] |
Definición en la línea 37 del archivo test_rational.cpp.
rational<INT> test_rational< INT >::m_sep_neg [protected] |
Definición en la línea 37 del archivo test_rational.cpp.
bool test_rational< INT >::m_super_lerdo [protected] |
Indica si hay que probar con numerotototes.
Definición en la línea 38 del archivo test_rational.cpp.
bool test_rational< INT >::m_super_numerotes [protected] |
Indica si se corren las pruebas que duran mucho.
Definición en la línea 39 del archivo test_rational.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] |