From 2c7af6bda8b090a31dd39e3ca6e5c55ed7758fb9 Mon Sep 17 00:00:00 2001 From: Baptiste Lepilleur Date: Thu, 28 Feb 2002 09:58:40 +0000 Subject: NEW: updated and restructured. NEW: updated and restructured. * include/cppunit/CompilerOutputter.h: * src/cppunit/CompilerOutputter.cpp: updated against TestResultChange. Changed TestResult to TestResultCollector. * include/cppunit/extensions/HelperMacros.h: minor documentation fix. * include/cppunit/Outputter.h: added. Abstract base class for all Outputter. * include/cppunit/Portability.h: made the fix on OStringStream suggested by Bob Summerwill to remove level 4 warning with VC++. * include/cppunit/TestAssert.h: added macro CPPUNIT_ASSERT_EQUAL_MESSAGE. * src/cppunit/TestFailure.cpp: * include/cppunit/TestFailure.h: added method clone() to duplicate a failure. Made all method virtual. * include/cppunit/TestListener.h: changed signature of addFailure() to addFailure( const TestFailure &failure ). Failure is now only a temporary object. * include/cppunit/Outputter.h: added. Abstract base class for all outputter. Used by TextTestRunner. * include/cppunit/SynchronizedObject.h: * src/cppunit/SynchronizedObject.cpp: added. Class extracted from TestResult. Base class for objects that can be accessed from different threads. * include/cppunit/TestResult.h: TestFailure.h is no longer included. * include/cppunit/TestResult.h: * src/cppunit/TestResult.cpp: extracted all methods related to keeping track of the result to the new TestResultCollector class which is a TestListener. * include/cppunit/TestResultCollector.h: * src/cppunit/TestResultCollector.cpp: added. TestListener which kept track of the result of the test run. All failure/error, and tests are tracked. * include/cppunit/TestSucessListener.h: * src/cppunit/TestSucessListener.cpp: added. TestListener extracted from TestResult. Is responsible for wasSucessful(). * include/cppunit/TestCase.h: * src/cppunit/TestCase.cpp: reindented. * include/cppunit/TextOutputter.h: * src/cppunit/TextOutputter.cpp: added. Copied from the deprecated TextTestResult and modified to act as an Ouputter. * include/cppunit/TextTestProgressListener.h: * src/cppunit/TextTestProgressListener.cpp: Copied from the deprecated TextTestResult and modified to print the dot while the test are running. * include/cppunit/TextTestResult.h: * src/cppunit/TextTestResult.cpp: updated against TestResult change. No compatiblity break. Deprecated. * include/cppunit/TextTestRunner.h: * src/cppunit/TextTestRunner.cpp: updated to work with the new TestResult. Use TextTestProgressListener and TextOutputter instead of TextTestResult. Any outputter with interface Outputter can be used to print the test result (CompilerOutputter, XmlOutputter, TextOutputter...) * include/cppunit/XmlOutputter.h: * src/cppunit/XmlOutputter.cpp: updated against TestResultChange. Changed TestResult to TestResultCollector. * src/msvc6/TestRunnerDlg.h: * src/msvc6/TestRunnerDlg.cpp: fixed the 'fullrowselect' feature of the list view. The dialog is a TestListener itself, it no longer use the GUITestResult class. * src/msvc6/TestRunner.rc: moved the "autorun test button" in such a way that it did not overlap the progress bar anymore. * src/msvc6/MfcSynchronizationObject.h: added. Generic SynchronizedObject lock for MFC. * src/msvc6/GUITestResult.h : * src/msvc6/GUITestResult.cpp : removed. * src/qttestrunner/TestRunnerModel.h: * src/qttestrunner/TestRunnerModel.cpp: changed addFailure() signature to reflect change on TestListener. * examples/cppunittest/CppUnitTestMain.cpp: updated to use the new Outputter abstraction and TextTestRunner facilities. * examples/cppunittest/FailingTestCase.h: * examples/cppunittest/FailingTestCase.cpp: removed. Replaced by MockTestCase. * examples/cppunittest/FailingTestCase.h: * examples/cppunittest/FailingTestCase.h: * examples/cppunittest/HelperMacrosTest.h: * examples/cppunittest/HelperMacrosTest.cpp: Updated against TestResult change. Use MockTestListener instead of TestResult to check for sucess or failure. * examples/cppunittest/MockTestListener.h: * examples/cppunittest/MockTestListener.cpp: the class now behave like a mock object. * examples/cppunittest/MockTestCase.h: * examples/cppunittest/MockTestCase.cpp: added. Mock TestCase object. * examples/cppunittest/OrthodoxTest.h: * examples/cppunittest/OrthodoxTest.cpp: Updated against TestResult change. Use MockTestListener instead of TestResult to check for sucess or failure. * examples/cppunittest/SynchronizedTestResult.h: Updated against TestResult change. * examples/cppunittest/TestCallerTest.h: * examples/cppunittest/TestCallerTest.cpp: Updated against TestResult change. Use MockTestListener instead of TestResult. * examples/cppunittest/TestCaseTest.h: * examples/cppunittest/TestCaseTest.cpp: Updated against TestResult change. Use MockTestListener and MockTestCase instead of FailingTestCase and TestResult. * examples/cppunittest/TestDecoratorTest.h: * examples/cppunittest/TestDecoratorTest.cpp: Updated against TestResult change. Use MockTestCase instead of FailingTestCase. * examples/cppunittest/TestListenerTest.h: * examples/cppunittest/TestListenerTest.cpp: removed. Those unit tests have been rewrote and moved to TestResultTest. * examples/cppunittest/TestResultTest.h: * examples/cppunittest/TestResultTest.cpp: Updated to test the new interface. Tests from TestListenerTest have been moved here. * examples/cppunittest/TestResultCollectorTest.h: * examples/cppunittest/TestResultCollectorTest.cpp: added. Tests for the class that been extracted from TestResult. * examples/cppunittest/TestSetUpTest.h: * examples/cppunittest/TestSetUpTest.cpp: renamed SetUp inner class to MockSetUp. Changed interface to be more akin to a Mock object. * examples/cppunittest/TestSuiteTest.h: * examples/cppunittest/TestSuiteTest.cpp: Updated against TestResult change, and rewrote to use MockTestCase instead of FailingTestCase. * examples/cppunittest/XmlOutputterTest.h: * examples/cppunittest/XmlOutputterTest.cpp: Updated against TestResult change. Added some utility methods to make the update easier. --- examples/cppunittest/TestSuiteTest.cpp | 82 ++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 39 deletions(-) (limited to 'examples/cppunittest/TestSuiteTest.cpp') diff --git a/examples/cppunittest/TestSuiteTest.cpp b/examples/cppunittest/TestSuiteTest.cpp index 61de964..d22e39a 100644 --- a/examples/cppunittest/TestSuiteTest.cpp +++ b/examples/cppunittest/TestSuiteTest.cpp @@ -1,7 +1,7 @@ #include "CoreSuite.h" -#include "FailingTestCase.h" #include "TestSuiteTest.h" #include +#include "MockTestCase.h" CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TestSuiteTest, @@ -22,14 +22,12 @@ void TestSuiteTest::setUp() { m_suite = new CppUnit::TestSuite(); - m_result = new CppUnit::TestResult(); } void TestSuiteTest::tearDown() { - delete m_result; delete m_suite; } @@ -53,59 +51,76 @@ TestSuiteTest::testCountTestCasesWithNoTest() void TestSuiteTest::testCountTestCasesWithTwoTests() { - m_suite->addTest( new CppUnit::TestCase( "test1" ) ); - m_suite->addTest( new CppUnit::TestCase( "test2" ) ); + MockTestCase *case1 = new MockTestCase( "test1" ); + case1->setExpectedCountTestCasesCall(); + MockTestCase *case2 = new MockTestCase( "test2" ); + case2->setExpectedCountTestCasesCall(); + m_suite->addTest( case1 ); + m_suite->addTest( case2 ); CPPUNIT_ASSERT_EQUAL( 2, m_suite->countTestCases() ); + case1->verify(); + case2->verify(); } void TestSuiteTest::testCountTestCasesWithSubSuite() { + MockTestCase *case1 = new MockTestCase( "test1" ); + case1->setExpectedCountTestCasesCall(); + MockTestCase *case2 = new MockTestCase( "test2" ); + case2->setExpectedCountTestCasesCall(); + MockTestCase *case3 = new MockTestCase( "test3" ); + case3->setExpectedCountTestCasesCall(); CppUnit::TestSuite *subSuite = new CppUnit::TestSuite( "SubSuite"); - subSuite->addTest( new CppUnit::TestCase( "test1" ) ); - subSuite->addTest( new CppUnit::TestCase( "test2" ) ); - - m_suite->addTest( new CppUnit::TestCase( "test3" ) ); + subSuite->addTest( case1 ); + subSuite->addTest( case2 ); + m_suite->addTest( case3 ); m_suite->addTest( subSuite ); CPPUNIT_ASSERT_EQUAL( 3, m_suite->countTestCases() ); + case1->verify(); + case2->verify(); + case3->verify(); } void TestSuiteTest::testRunWithOneTest() { - FailingTestCase *test = new FailingTestCase(); - m_suite->addTest( test ); + MockTestCase *case1 = new MockTestCase( "test1" ); + case1->setExpectedRunTestCall(); + m_suite->addTest( case1 ); - m_suite->run( m_result ); - test->verify(); - checkResult( 0, 0, 1 ); + CppUnit::TestResult result; + m_suite->run( &result ); + + case1->verify(); } void TestSuiteTest::testRunWithOneTestAndSubSuite() { + MockTestCase *case1 = new MockTestCase( "test1" ); + case1->setExpectedRunTestCall(); + MockTestCase *case2 = new MockTestCase( "test2" ); + case2->setExpectedRunTestCall(); + MockTestCase *case3 = new MockTestCase( "test3" ); + case3->setExpectedRunTestCall(); CppUnit::TestSuite *subSuite = new CppUnit::TestSuite( "SubSuite"); - - FailingTestCase *test2 = new FailingTestCase(); - subSuite->addTest( test2 ); - - FailingTestCase *test3 = new FailingTestCase(); - subSuite->addTest( test3 ); + subSuite->addTest( case1 ); + subSuite->addTest( case2 ); + m_suite->addTest( case3 ); + m_suite->addTest( subSuite); - FailingTestCase *test = new FailingTestCase(); - m_suite->addTest( test ); - m_suite->addTest( subSuite ); + CppUnit::TestResult result; + m_suite->run( &result ); - m_suite->run( m_result ); - checkResult( 0, 0, 3 ); - test->verify(); - test2->verify(); - test3->verify(); + case1->verify(); + case2->verify(); + case3->verify(); } @@ -125,14 +140,3 @@ TestSuiteTest::testDeleteContents() m_suite->deleteContents(); CPPUNIT_ASSERT_EQUAL( 0, int(m_suite->getTests().size()) ); } - - -void -TestSuiteTest::checkResult( int failures, - int errors, - int testsRun ) -{ - CPPUNIT_ASSERT_EQUAL( testsRun, m_result->runTests() ); - CPPUNIT_ASSERT_EQUAL( errors, m_result->testErrors() ); - CPPUNIT_ASSERT_EQUAL( failures, m_result->testFailures() ); -} -- cgit v1.2.1