CppUnit project page FAQ

TestSuiteBuilderContext.h
Go to the documentation of this file.
1#ifndef CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H
2#define CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H
3
5#include <map>
6#include <string>
7
8#if CPPUNIT_NEED_DLL_DECL
9#pragma warning( push )
10#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
11#endif
12
13
15
16class TestSuite;
17class TestFixture;
19class TestNamer;
20
30{
31public:
38 const TestNamer &namer,
39 TestFixtureFactory &factory );
40
42
47
52 void addTest( Test *test );
53
58 std::string getFixtureName() const;
59
68 std::string getTestNameFor( const std::string &testMethodName ) const;
69
79 template<typename T>
80 std::string getTestNameFor( const std::string &testMethodName, const T& value ) const
81 {
82 return m_namer.getTestNameFor(testMethodName, value);
83 }
84
89 void addProperty( const std::string &key,
90 const std::string &value );
91
95 const std::string getStringProperty( const std::string &key ) const;
96
97protected:
98 TestFixture *makeTestFixture() const;
99
100 // Notes: we use a vector here instead of a map to work-around the
101 // shared std::map in dll bug in VC6.
102 // See http://www.dinkumware.com/vc_fixes.html for detail.
103 typedef std::pair<std::string,std::string> Property;
104 typedef std::vector<Property> Properties;
105
109
110private:
112};
113
114
119template<class Fixture>
121{
122public:
123 typedef Fixture FixtureType;
124
129
141};
142
143
145
146#if CPPUNIT_NEED_DLL_DECL
147#pragma warning( pop )
148#endif
149
150#endif // CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H
151
#define CPPUNIT_API
Definition CppUnitApi.h:27
#define CPPUNIT_NS_END
Definition Portability.h:106
#define CPPUNIT_STATIC_CAST(TargetType, pointer)
Definition Portability.h:87
#define CPPUNIT_NS_BEGIN
Definition Portability.h:105
Abstract TestFixture factory (Implementation).
Definition TestFixtureFactory.h:17
Wraps a test case with setUp and tearDown methods.
Definition TestFixture.h:84
Base class for all test objects.
Definition Test.h:26
Names a test or a fixture suite.
Definition TestNamer.h:39
Context used when creating test suite in HelperMacros.
Definition TestSuiteBuilderContext.h:30
TestSuite & m_suite
Definition TestSuiteBuilderContext.h:106
std::pair< std::string, std::string > Property
Definition TestSuiteBuilderContext.h:103
TestSuiteBuilderContextBase(TestSuiteBuilderContextBase const &)=default
std::string getTestNameFor(const std::string &testMethodName, const T &value) const
Returns the name of the test for the specified method with the corresponding parameter.
Definition TestSuiteBuilderContext.h:80
TestFixture * makeTestFixture() const
Definition TestSuiteBuilderContext.cpp:49
std::vector< Property > Properties
Definition TestSuiteBuilderContext.h:104
const TestNamer & m_namer
Definition TestSuiteBuilderContext.h:107
Properties m_properties
Definition TestSuiteBuilderContext.h:111
TestFixtureFactory & m_factory
Definition TestSuiteBuilderContext.h:108
TestSuiteBuilderContextBase(TestSuiteBuilderContextBase &&)=default
Type-sage context used when creating test suite in HelperMacros.
Definition TestSuiteBuilderContext.h:121
Fixture FixtureType
Definition TestSuiteBuilderContext.h:123
TestSuiteBuilderContext(TestSuiteBuilderContextBase &contextBase)
Definition TestSuiteBuilderContext.h:125
FixtureType * makeFixture() const
Returns a new TestFixture instance.
Definition TestSuiteBuilderContext.h:136
A Composite of Tests.
Definition TestSuite.h:41

Send comments to:
CppUnit Developers