📄 testcallertest.cpp
字号:
#include "FailureException.h"#include "HelperSuite.h"#include "TestCallerTest.h"#include <cppunit/extensions/HelperMacros.h>CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TestCallerTest, helperSuiteName() );void TestCallerTest::ExceptionThrower::testThrowFailureException(){ throw FailureException();}void TestCallerTest::ExceptionThrower::testThrowException(){ throw CPPUNIT_NS::Exception( CPPUNIT_NS::Message( "expected Exception" ) );}void TestCallerTest::ExceptionThrower::testThrowNothing(){}TestCallerTest::TestCallerTest() : m_testName( "TrackedTestCaseCaller" ){}TestCallerTest::~TestCallerTest(){}void TestCallerTest::setUp(){ m_constructorCount = 0; m_destructorCount = 0; m_setUpCount = 0; m_tearDownCount = 0; m_testCount = 0; TrackedTestCase::setTracker( this ); m_testListener = new MockTestListener( "listener1" ); m_result = new CPPUNIT_NS::TestResult(); m_result->addListener( m_testListener );}void TestCallerTest::tearDown(){ TrackedTestCase::removeTracker(); delete m_result; delete m_testListener;}void TestCallerTest::onConstructor(){ m_constructorCount++;}void TestCallerTest::onDestructor(){ m_destructorCount++;}void TestCallerTest::onSetUp(){ m_setUpCount++;}void TestCallerTest::onTearDown(){ m_tearDownCount++;}void TestCallerTest::onTest(){ m_testCount++;}void TestCallerTest::testBasicConstructor(){ { CPPUNIT_NS::TestCaller<TrackedTestCase> caller( m_testName, &TrackedTestCase::test ); checkTestName( caller.getName() ); checkNothingButConstructorCalled(); caller.run( m_result ); checkRunningSequenceCalled(); } // Force destruction of the test caller. CPPUNIT_ASSERT_EQUAL( 1, m_destructorCount );}void TestCallerTest::testReferenceConstructor(){ TrackedTestCase testCase; { CPPUNIT_NS::TestCaller<TrackedTestCase> caller( "TrackedTestCaseCaller", &TrackedTestCase::test, testCase ); checkTestName( caller.getName() ); checkNothingButConstructorCalled(); caller.run( m_result ); checkRunningSequenceCalled(); } // Force destruction of the test caller. CPPUNIT_ASSERT_EQUAL( 0, m_destructorCount );}void TestCallerTest::testPointerConstructor(){ TrackedTestCase *testCase = new TrackedTestCase(); { CPPUNIT_NS::TestCaller<TrackedTestCase> caller( m_testName, &TrackedTestCase::test, testCase ); checkTestName( caller.getName() ); checkNothingButConstructorCalled(); caller.run( m_result ); checkRunningSequenceCalled(); } // Force destruction of the test caller. CPPUNIT_ASSERT_EQUAL( 1, m_destructorCount );}/*// Now done by ExceptionTestCaseDecoratorvoid TestCallerTest::testExpectFailureException(){ CPPUNIT_NS::TestCaller<ExceptionThrower,FailureException> caller( m_testName, &ExceptionThrower::testThrowFailureException ); m_testListener->setExpectNoFailure(); caller.run( m_result ); m_testListener->verify();}void TestCallerTest::testExpectException(){ CPPUNIT_NS::TestCaller<ExceptionThrower,CPPUNIT_NS::Exception> caller( m_testName, &ExceptionThrower::testThrowException ); m_testListener->setExpectNoFailure(); caller.run( m_result ); m_testListener->verify();}void TestCallerTest::testExpectedExceptionNotCaught(){ CPPUNIT_NS::TestCaller<ExceptionThrower,FailureException> caller( m_testName, &ExceptionThrower::testThrowNothing ); m_testListener->setExpectedAddFailureCall( 1 ); caller.run( m_result ); m_testListener->verify();}*/void TestCallerTest::checkNothingButConstructorCalled(){ CPPUNIT_ASSERT_EQUAL( 1, m_constructorCount ); CPPUNIT_ASSERT_EQUAL( 0, m_destructorCount ); CPPUNIT_ASSERT_EQUAL( 0, m_setUpCount ); CPPUNIT_ASSERT_EQUAL( 0, m_tearDownCount ); CPPUNIT_ASSERT_EQUAL( 0, m_testCount );}void TestCallerTest::checkRunningSequenceCalled(){ CPPUNIT_ASSERT_EQUAL( 1, m_setUpCount ); CPPUNIT_ASSERT_EQUAL( 1, m_testCount ); CPPUNIT_ASSERT_EQUAL( 1, m_tearDownCount );}void TestCallerTest::checkTestName( std::string testName ){ CPPUNIT_ASSERT( testName == m_testName );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -