CppUnit project page FAQ

Protector Class Referenceabstract

Protects one or more test case run. More...

#include <Protector.h>

Inheritance diagram for Protector:

Public Member Functions

virtual ~Protector ()
 
virtual bool protect (const Functor &functor, const ProtectorContext &context)=0
 

Protected Member Functions

void reportError (const ProtectorContext &context, const Exception &error) const
 
void reportError (const ProtectorContext &context, const Message &message, const SourceLine &sourceLine=SourceLine()) const
 
void reportFailure (const ProtectorContext &context, const Exception &failure) const
 
Message actualMessage (const Message &message, const ProtectorContext &context) const
 

Detailed Description

Protects one or more test case run.

Protector are used to globably 'decorate' a test case. The most common usage of Protector is to catch exception that do not subclass std::exception, such as MFC CException class or Rogue Wave RWXMsg class, and capture the message associated to the exception. In fact, CppUnit capture message from Exception and std::exception using a Protector.

Protector are chained. When you add a Protector using TestResult::pushProtector(), your protector is in fact passed as a Functor to the first protector of the chain.

TestCase protects call to setUp(), runTest() and tearDown() by calling TestResult::protect().

Because the protector chain is handled by TestResult, a protector can be active for a single test, or a complete test run.

Here are some possible usages:

  • run all test case in a separate thread and assumes the test failed if it did not finish in a given time (infinite loop work around)
  • performance tracing : time only the runTest() time.
    See also
    TestResult, TestCase, TestListener.

Constructor & Destructor Documentation

◆ ~Protector()

Protector::~Protector ( )
virtual

Member Function Documentation

◆ actualMessage()

Message Protector::actualMessage ( const Message & message,
const ProtectorContext & context ) const
protected

◆ protect()

virtual bool Protector::protect ( const Functor & functor,
const ProtectorContext & context )
pure virtual

Implemented in DefaultProtector, and ProtectorChain.

◆ reportError() [1/2]

void Protector::reportError ( const ProtectorContext & context,
const Exception & error ) const
protected

◆ reportError() [2/2]

void Protector::reportError ( const ProtectorContext & context,
const Message & message,
const SourceLine & sourceLine = SourceLine() ) const
protected

◆ reportFailure()

void Protector::reportFailure ( const ProtectorContext & context,
const Exception & failure ) const
protected

The documentation for this class was generated from the following files:

Send comments to:
CppUnit Developers