summaryrefslogtreecommitdiffstats log msg author committer range
blob: 5a6471c0c3ed07e6d6f7776c660ef1545d6a3b87 (plain)
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89  #ifndef CPPUNIT_EXTENSIONS_TESTNAMER_H #define CPPUNIT_EXTENSIONS_TESTNAMER_H #include #include #if CPPUNIT_HAVE_RTTI # include #endif /*! \def CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) * \brief Declares a TestNamer. * * Declares a TestNamer for the specified type, using RTTI if enabled, otherwise * using macro string expansion. * * RTTI is used if CPPUNIT_USE_TYPEINFO_NAME is defined and not null. * * \code * void someMethod() * { * CPPUNIT_TESTNAMER_DECL( namer, AFixtureType ); * std::string fixtureName = namer.getFixtureName(); * ... * \endcode * * \relates TestNamer * \see TestNamer */ #if CPPUNIT_USE_TYPEINFO_NAME # define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \ CPPUNIT_NS::TestNamer variableName( typeid(FixtureType) ) #else # define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \ CPPUNIT_NS::TestNamer variableName( std::string(#FixtureType) ) #endif CPPUNIT_NS_BEGIN /*! \brief Names a test or a fixture suite. * * TestNamer is usually instantiated using CPPUNIT_TESTNAMER_DECL. * */ class CPPUNIT_API TestNamer { public: #if CPPUNIT_HAVE_RTTI /*! \brief Constructs a namer using the fixture's type-info. * \param typeInfo Type-info of the fixture type. Use to name the fixture suite. */ TestNamer( const std::type_info &typeInfo ); #endif /*! \brief Constructs a namer using the specified fixture name. * \param fixtureName Name of the fixture suite. Usually extracted using a macro. */ TestNamer( const std::string &fixtureName ); virtual ~TestNamer(); /*! \brief Returns the name of the fixture. * \return Name of the fixture. */ virtual std::string getFixtureName() const; /*! \brief Returns the name of the test for the specified method. * \param testMethodName Name of the method that implements a test. * \return A string that is the concatenation of the test fixture name * (returned by getFixtureName()) and\a testMethodName, * separated using '::'. This provides a fairly unique name for a given * test. */ virtual std::string getTestNameFor( const std::string &testMethodName ) const; protected: std::string m_fixtureName; }; CPPUNIT_NS_END #endif // CPPUNIT_EXTENSIONS_TESTNAMER_H