CppUnit project page FAQ CppUnit home page

Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

CppUnit::TestCaller Class Template Reference

Generate a test case from a fixture method. More...

#include <TestCaller.h>

Inheritance diagram for CppUnit::TestCaller:

Inheritance graph
[legend]
Collaboration diagram for CppUnit::TestCaller:

Collaboration graph
[legend]
List of all members.

Public Methods

 TestCaller (std::string name, TestMethod test)
 Constructor for TestCaller. More...

 TestCaller (std::string name, TestMethod test, Fixture &fixture)
 Constructor for TestCaller. More...

 TestCaller (std::string name, TestMethod test, Fixture *fixture)
 Constructor for TestCaller. More...

 ~TestCaller ()

Protected Methods

void runTest ()
 All the work for runTest is deferred to subclasses. More...

void setUp ()
 A hook for fixture set up. More...

void tearDown ()
 A hook for fixture tear down. More...

std::string toString () const
 Returns the name of the test case instance. More...


Private Types

typedef void(Fixture::* TestMethod )()

Private Methods

 TestCaller (const TestCaller &other)
TestCaller & operator= (const TestCaller &other)

Private Attributes

bool m_ownFixture
Fixture * m_fixture
TestMethod m_test

Detailed Description

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
class CppUnit::TestCaller< Fixture, ExpectedException >

Generate a test case from a fixture method.

A test caller provides access to a test case method on a test case class. Test callers are useful when you want to run an individual test or add it to a suite. Test Callers invoke only one Test (i.e. test method) on one Fixture of a TestCase.

Here is an example:

 class MathTest : public CppUnit::TestCase {
         ...
     public:
         void         setUp ();
         void         tearDown ();

         void         testAdd ();
         void         testSubtract ();
 };

 CppUnit::Test *MathTest::suite () {
     CppUnit::TestSuite *suite = new CppUnit::TestSuite;

     suite->addTest (new CppUnit::TestCaller<MathTest> ("testAdd", testAdd));
     return suite;
 }

You can use a TestCaller to bind any test method on a TestCase class, as long as it accepts void and returns void.

See also:
TestCase


Member Typedef Documentation

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
typedef void (Fixture::* CppUnit::TestCaller::TestMethod)() [private]
 


Constructor & Destructor Documentation

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
CppUnit::TestCaller< Fixture, ExpectedException >::TestCaller std::string   name,
TestMethod   test
[inline]
 

Constructor for TestCaller.

This constructor builds a new Fixture instance owned by the TestCaller.

Parameters:
name   name of this TestCaller
test   the method this TestCaller calls in runTest()

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
CppUnit::TestCaller< Fixture, ExpectedException >::TestCaller std::string   name,
TestMethod   test,
Fixture &   fixture
[inline]
 

Constructor for TestCaller.

This constructor does not create a new Fixture instance but accepts an existing one as parameter. The TestCaller will not own the Fixture object.

Parameters:
name   name of this TestCaller
test   the method this TestCaller calls in runTest()
fixture   the Fixture to invoke the test method on.

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
CppUnit::TestCaller< Fixture, ExpectedException >::TestCaller std::string   name,
TestMethod   test,
Fixture *   fixture
[inline]
 

Constructor for TestCaller.

This constructor does not create a new Fixture instance but accepts an existing one as parameter. The TestCaller will own the Fixture object and delete it in its destructor.

Parameters:
name   name of this TestCaller
test   the method this TestCaller calls in runTest()
fixture   the Fixture to invoke the test method on.

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
CppUnit::TestCaller< Fixture, ExpectedException >::~TestCaller   [inline]
 

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
CppUnit::TestCaller< Fixture, ExpectedException >::TestCaller const TestCaller< Fixture, ExpectedException > &   other [private]
 


Member Function Documentation

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
TestCaller& CppUnit::TestCaller< Fixture, ExpectedException >::operator= const TestCaller< Fixture, ExpectedException > &   other [private]
 

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
void CppUnit::TestCaller< Fixture, ExpectedException >::runTest   [inline, protected, virtual]
 

All the work for runTest is deferred to subclasses.

Reimplemented from CppUnit::TestCase.

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
void CppUnit::TestCaller< Fixture, ExpectedException >::setUp   [inline, protected, virtual]
 

A hook for fixture set up.

Reimplemented from CppUnit::TestCase.

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
void CppUnit::TestCaller< Fixture, ExpectedException >::tearDown   [inline, protected, virtual]
 

A hook for fixture tear down.

Reimplemented from CppUnit::TestCase.

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
std::string CppUnit::TestCaller< Fixture, ExpectedException >::toString   const [inline, protected, virtual]
 

Returns the name of the test case instance.

Reimplemented from CppUnit::TestCase.


Member Data Documentation

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
Fixture* CppUnit::TestCaller::m_fixture [private]
 

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
bool CppUnit::TestCaller::m_ownFixture [private]
 

template<typename Fixture, typename ExpectedException = NoExceptionExpected>
TestMethod CppUnit::TestCaller::m_test [private]
 


The documentation for this class was generated from the following file:
SourceForge Logo hosts this site. Send comments to:
CppUnit Developers