[B]asic module for [unit] program testing:
|
Clase simple para probar la clase ADH_Graph
.
More...
Public Member Functions | |
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 () |
Sets the environment for the test run. | |
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 () |
Excecutes the test run setUp(); run(); tearDown(); . | |
bool | Run () |
Synonym for run() . | |
bool | runTest () |
Synonym for run() . | |
virtual void | tearDown () |
Destroys the test environment. | |
int | countTestCases () const |
1 == Number of test cases. | |
int | runCount () const |
Number of test runs. | |
virtual int | failureCount () const |
Number of test runs that failed. | |
int | errorCount () const |
Always returns 0 (cero): "Number of errors". | |
virtual int | successCount () const |
Number of successful test runs. | |
bool | wasSuccessful () const |
Returns "true" when all test runs where successful. | |
virtual void | reset () |
Discards all test runs. | |
std::string | getName () const |
Gets the test case name. | |
void | setName (const char *name=0) |
Sets the test case name to "name" . | |
virtual const std::string | toString () const |
Huuuge string that holds a copy of non successfull test, separated by "\n" . | |
virtual const std::string | summary () const |
Returns a string with the name, number of successes and failures. | |
virtual const std::string | toXML () const |
XML string that holds a copy of all unsuccessful tests. | |
const std::string | report () const |
Returns string summary() followed by toString() . | |
const std::string | failureString () const |
Synonym for toString() . | |
Static Public Member Functions | |
template<class T > | |
static std::string | toString (const T &val) |
Returns a std::string constructed form value val . | |
Protected Member Functions | |
void | recordSuccess () |
Records the test run as a success. | |
void | recordFailure (const char *label, const char *fname, int lineno, bool must_copy=false) |
Records that the test run did not succeed. | |
void | recordFailure (const std::string &label, const char *fname, int lineno) |
Records that the test did not succeed. | |
void | testThis (bool cond, const char *label, const char *fname, long lineno, bool must_copy=false) |
Executes the test and records its result. | |
void | testThis (bool cond, const std::string &label, const char *fname, long lineno) |
Synonym for testThis() . | |
int | nPass () const |
Synonym for successCount() [OBSOLETE]. | |
int | nError () const |
Synonym for failureCount() [OBSOLETE]. | |
Protected Attributes | |
int | m_pass |
Number of successful tests. | |
int | m_failure |
Number of test that produced failed. | |
const char * | m_name |
Test case name. | |
bool | m_test_suite_destroy |
Holds "true" if the test case is stored in dynamic memory. | |
std::list< TestCaseFailure > | m_failureList |
Container where test cases that produced failures are stored. | |
Private Attributes | |
bool | m_cycle |
Indica si run() invoca test_connected_cycle() ;. | |
Graph | G |
Valor usado en las pruebas. | |
Friends | |
class | TestSuite |
Colección de pruebas. | |
template<class TestCase > | |
void | do_toXML (const TestCase *tc, std::basic_ostringstream< char > &ost) |
Adds to ost the string of al unsuccessful test from *tc in XML format. | |
template<class TestCase > | |
void | do_toString (const TestCase *tc, std::basic_ostringstream< char > &ost) |
Adds to ost the string of al unsuccessful test from *tc . |
Clase simple para probar la clase ADH_Graph
.
Definition at line 18 of file test_Graph.cpp.
ADH::test_Graph::test_Graph | ( | ) | [inline] |
Constructor por defecto.
Definition at line 22 of file test_Graph.cpp.
void ADH::test_Graph::test_connected | ( | ) |
Prueba Graph::connected()
.
Definition at line 113 of file 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)
Definition at line 235 of file test_Graph.cpp.
void ADH::test_Graph::test_isVertex | ( | ) |
Prueba Graph::isVertex()
Definition at line 255 of file test_Graph.cpp.
void ADH::test_Graph::test_vertexList | ( | ) |
Prueba Graph::test_vertexList()
Definition at line 295 of file test_Graph.cpp.
void ADH::test_Graph::setUp | ( | ) | [virtual] |
Sets the environment for the test run.
TestCase::run()
is an abstract method, to facilitate programming it is usual for the programmer not to invoke TestCase::setUp()
and TestCase::tearDown()
because it is easier to have TestSuite<TestCase>::runBare()
do it.TestCase::runBare()
, method TestCase::run()
will not establish the test environment because it does not invoke neither TestCase::setUp()
before the test run nor TestCase::tearDown()
after the test run.TestSuite<TestCase>::runBare()
invokes methods TestCase::setUp()
and TestCase::tearDown()
when the test run is executed.TestSuite
and execute all of them invoking TestSuite<TestCase>::runBare()
. Reimplemented from TestCase.
Definition at line 64 of file test_Graph.cpp.
void ADH::test_Graph::do_cout | ( | std::ostream & | COUT | ) |
Graba en COUT
el valor de G
(Fixture).
Definition at line 79 of file test_Graph.cpp.
void ADH::test_Graph::do_dump | ( | std::ostream & | COUT | ) |
Graba en COUT
el valor de G
(Fixture).
Definition at line 84 of file test_Graph.cpp.
Prueba Graph::Rep_const_iterator()
.
Definition at line 94 of file test_Graph.cpp.
void ADH::test_Graph::test_isConnected | ( | ) |
Prueba Graph::test_isConnected()
Definition at line 317 of file test_Graph.cpp.
void ADH::test_Graph::test_isCircuit | ( | ) |
Prueba Graph::test_isCircuit()
que tiene ciclos.
Definition at line 343 of file test_Graph.cpp.
void ADH::test_Graph::test_spanningTree | ( | ) |
Prueba Graph::test_spanningTree()
.
Definition at line 426 of file test_Graph.cpp.
bool ADH::test_Graph::run | ( | ) | [virtual] |
Ejecuta las pruebas para test_Graph
.
Implements TestCase.
Definition at line 41 of file test_Graph.cpp.
void ADH::test_Graph::set_cycles | ( | bool | v | ) | [inline] |
Define si run()
invoca test_connected_cycle()
;.
Definition at line 35 of file test_Graph.cpp.
void TestCase::runBare | ( | ) | [inline, inherited] |
Excecutes the test run setUp(); run(); tearDown();
.
run()
, this method will setup the environment for the test run invoking setUp()
and tearDown()
before and after the test. {{ // 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 ); }}
Reimplemented in 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 == Number of test cases.
The value returned always is one 1
because class TestCase
represents a single test case. For the container TestSuite<>
the value returned can be bigger than 1
.
TestCase
."assert()"
macro, as assertTrue()
, fail_Msg()
, assertEquals_Delta()
, or others like BUnit_SUCCESS()
or BUnit_TEST()
.TestSuite<>
. Reimplemented in TestSuite< TestCase >.
int TestCase::runCount | ( | ) | const [inline, inherited] |
Number of test runs.
successCount()+failureCount()+errorCount()
. int TestCase::failureCount | ( | ) | const [inline, virtual, inherited] |
int TestCase::errorCount | ( | ) | const [inline, inherited] |
Always returns 0
(cero): "Number of errors".
int TestCase::successCount | ( | ) | const [inline, virtual, inherited] |
bool TestCase::wasSuccessful | ( | ) | const [inline, inherited] |
Returns "true"
when all test runs where successful.
(successCount() == runCount())
void TestCase::reset | ( | ) | [inline, virtual, inherited] |
Discards all test runs.
{{ // 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 }}
Reimplemented in TestSuite< TestCase >.
std::string TestCase::getName | ( | ) | const [inline, inherited] |
void TestCase::setName | ( | const char * | name = 0 | ) | [inline, inherited] |
Sets the test case name to "name"
.
"name"
is a null string or pointer, later typeid(*this).name()
will be invoked to get the test´s name. {{ // 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] |
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
Reimplemented in TestSuite< TestCase >.
std::string TestCase::toString | ( | const T & | val | ) | [static, inherited] |
Returns a std::string
constructed form value val
.
toString()
with standard C++ const std::string TestCase::summary | ( | ) | const [inline, virtual, inherited] |
Returns a string with the name, number of successes and failures.
Reimplemented in TestSuite< TestCase >.
const std::string TestCase::toXML | ( | ) | const [inline, virtual, inherited] |
XML string that holds a copy of all unsuccessful tests.
<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"/>
Reimplemented in TestSuite< TestCase >.
const std::string TestCase::report | ( | ) | const [inline, inherited] |
Returns string summary()
followed by toString()
.
const std::string TestCase::failureString | ( | ) | const [inline, inherited] |
Synonym for 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] |
Records that the test run did not succeed.
"fname"
and "lineno"
indicate the file and line where the test run is executed."fname"
and "lineno"
are usuallly obtained invoking global macros "__FILE__"
and "__LINE__"
."must_copy"
forces a copy of string label to be created in dynamic memory. This dynamic memory will be destroyed when the test case gets destroyed or when method TestCase::reset()
gets invoked."label"
is a constant string generated by the preprocessor macro using #cond
; this string constant is not stored in dynamic memory and it must not be destroyed.This method is invoked using 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] |
Executes the test and records its result.
successCount()
.toString()
this fact."cond"
."fname"
and "lineno"
show the file and line of the executed test."fname"
and "lineno"
are values obtained with global macros "__FILE__"
and "__LINE__"
."must_copy"
indicates whether it is necessary to make a copy of string "label"
; this copy will be destroyed when the record of not successful test is deleted."label"
is a constant genertated by the preprocessor when using macro #cond
its memory must not be returned. This method is invoked using 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] |
Synonym for 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()
;.
Definition at line 19 of file test_Graph.cpp.
Graph ADH::test_Graph::G [private] |
Valor usado en las pruebas.
Definition at line 20 of file 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] |