|
Packit Service |
e31359 |
#ifndef CPPUNIT_EXTENSIONS_TESTNAMER_H
|
|
Packit Service |
e31359 |
#define CPPUNIT_EXTENSIONS_TESTNAMER_H
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
#include <cppunit/Portability.h>
|
|
Packit Service |
e31359 |
#include <string>
|
|
Packit Service |
e31359 |
#include <cppunit/tools/StringHelper.h>
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
#include <typeinfo>
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
/*! \def CPPUNIT_TESTNAMER_DECL( variableName, FixtureType )
|
|
Packit Service |
e31359 |
* \brief Declares a TestNamer.
|
|
Packit Service |
e31359 |
*
|
|
Packit Service |
e31359 |
* Declares a TestNamer for the specified type
|
|
Packit Service |
e31359 |
*
|
|
Packit Service |
e31359 |
* \code
|
|
Packit Service |
e31359 |
* void someMethod()
|
|
Packit Service |
e31359 |
* {
|
|
Packit Service |
e31359 |
* CPPUNIT_TESTNAMER_DECL( namer, AFixtureType );
|
|
Packit Service |
e31359 |
* std::string fixtureName = namer.getFixtureName();
|
|
Packit Service |
e31359 |
* ...
|
|
Packit Service |
e31359 |
* \endcode
|
|
Packit Service |
e31359 |
*
|
|
Packit Service |
e31359 |
* \relates TestNamer
|
|
Packit Service |
e31359 |
* \see TestNamer
|
|
Packit Service |
e31359 |
*/
|
|
Packit Service |
e31359 |
# define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \
|
|
Packit Service |
e31359 |
CPPUNIT_NS::TestNamer variableName( typeid(FixtureType) )
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
CPPUNIT_NS_BEGIN
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
/*! \brief Names a test or a fixture suite.
|
|
Packit Service |
e31359 |
*
|
|
Packit Service |
e31359 |
* TestNamer is usually instantiated using CPPUNIT_TESTNAMER_DECL.
|
|
Packit Service |
e31359 |
*
|
|
Packit Service |
e31359 |
*/
|
|
Packit Service |
e31359 |
class CPPUNIT_API TestNamer
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
public:
|
|
Packit Service |
e31359 |
/*! \brief Constructs a namer using the fixture's type-info.
|
|
Packit Service |
e31359 |
* \param typeInfo Type-info of the fixture type. Use to name the fixture suite.
|
|
Packit Service |
e31359 |
*/
|
|
Packit Service |
e31359 |
TestNamer( const std::type_info &typeInfo );
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
/*! \brief Constructs a namer using the specified fixture name.
|
|
Packit Service |
e31359 |
* \param fixtureName Name of the fixture suite. Usually extracted using a macro.
|
|
Packit Service |
e31359 |
*/
|
|
Packit Service |
e31359 |
TestNamer( const std::string &fixtureName );
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
virtual ~TestNamer();
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
/*! \brief Returns the name of the fixture.
|
|
Packit Service |
e31359 |
* \return Name of the fixture.
|
|
Packit Service |
e31359 |
*/
|
|
Packit Service |
e31359 |
virtual std::string getFixtureName() const;
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
/*! \brief Returns the name of the test for the specified method.
|
|
Packit Service |
e31359 |
* \param testMethodName Name of the method that implements a test.
|
|
Packit Service |
e31359 |
* \return A string that is the concatenation of the test fixture name
|
|
Packit Service |
e31359 |
* (returned by getFixtureName()) and\a testMethodName,
|
|
Packit Service |
e31359 |
* separated using '::'. This provides a fairly unique name for a given
|
|
Packit Service |
e31359 |
* test.
|
|
Packit Service |
e31359 |
*/
|
|
Packit Service |
e31359 |
virtual std::string getTestNameFor( const std::string &testMethodName ) const;
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
template<typename E>
|
|
Packit Service |
e31359 |
std::string getTestNameFor( const std::string& testMethodName, const E& val) const
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
return getTestNameFor(testMethodName) + " with parameter: " + CPPUNIT_NS::StringHelper::toString(val);
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
protected:
|
|
Packit Service |
e31359 |
std::string m_fixtureName;
|
|
Packit Service |
e31359 |
};
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
CPPUNIT_NS_END
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
#endif // CPPUNIT_EXTENSIONS_TESTNAMER_H
|
|
Packit Service |
e31359 |
|