📄 testcase.cpp
字号:
#include <cppunit/Portability.h>#include <cppunit/Exception.h>#include <cppunit/Protector.h>#include <cppunit/TestCase.h>#include <cppunit/TestResult.h>#include <stdexcept>#if CPPUNIT_USE_TYPEINFO_NAME# include <typeinfo>#endifCPPUNIT_NS_BEGIN/*! \brief Functor to call test case method (Implementation). * * Implementation detail. */class TestCaseMethodFunctor : public Functor{public: typedef void (TestCase::*Method)(); TestCaseMethodFunctor( TestCase *target, Method method ) : m_target( target ) , m_method( method ) { } bool operator()() const { (m_target->*m_method)(); return true; }private: TestCase *m_target; Method m_method;};/** Constructs a test case. * \param name the name of the TestCase. **/TestCase::TestCase( const std::string &name ) : m_name(name){}/// Run the test and catch any exceptions that are triggered by it void TestCase::run( TestResult *result ){ result->startTest(this);/* try { setUp(); try { runTest(); } catch ( Exception &e ) { Exception *copy = e.clone(); result->addFailure( this, copy ); } catch ( std::exception &e ) { result->addError( this, new Exception( Message( "uncaught std::exception", e.what() ) ) ); } catch (...) { Exception *e = new Exception( Message( "uncaught unknown exception" ) ); result->addError( this, e ); } try { tearDown(); } catch (...) { result->addError( this, new Exception( Message( "tearDown() failed" ) ) ); } } catch (...) { result->addError( this, new Exception( Message( "setUp() failed" ) ) ); }*/ if ( result->protect( TestCaseMethodFunctor( this, &TestCase::setUp ), this, "setUp() failed" ) ) { result->protect( TestCaseMethodFunctor( this, &TestCase::runTest ), this ); } result->protect( TestCaseMethodFunctor( this, &TestCase::tearDown ), this, "tearDown() failed" ); result->endTest( this );}/// All the work for runTest is deferred to subclasses void TestCase::runTest(){}/** Constructs a test case for a suite. * \deprecated This constructor was used by fixture when TestFixture did not exist. * Have your fixture inherits TestFixture instead of TestCase. * \internal * This TestCase was intended for use by the TestCaller and should not * be used by a test case for which run() is called. **/TestCase::TestCase() : m_name( "" ){}/// Destructs a test caseTestCase::~TestCase(){}/// Returns the name of the test casestd::string TestCase::getName() const{ return m_name; } CPPUNIT_NS_END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -