CppUnit project page | FAQ

ExceptionTestCaseDecorator.h
Go to the documentation of this file.
1 #ifndef CPPUNIT_EXTENSIONS_EXCEPTIONTESTCASEDECORATOR_H
2 #define CPPUNIT_EXTENSIONS_EXCEPTIONTESTCASEDECORATOR_H
3
4 #include <cppunit/Portability.h>
5 #include <cppunit/Exception.h>
6 #include <cppunit/extensions/TestCaseDecorator.h>
7
8 CPPUNIT_NS_BEGIN
9
10
43 template<class ExpectedException>
44 class ExceptionTestCaseDecorator : public TestCaseDecorator
45 {
46 public:
47 typedef ExpectedException ExpectedExceptionType;
48
52 ExceptionTestCaseDecorator( TestCase *test )
53 : TestCaseDecorator( test )
54 {
55 }
56
65 void runTest()
66 {
67 try
68 {
69 TestCaseDecorator::runTest();
70 }
71 catch ( ExpectedExceptionType &e )
72 {
73 checkException( e );
74 return;
75 }
76
77 // Moved outside the try{} statement to handle the case where the
78 // expected exception type is Exception (expecting assertion failure).
79 #if CPPUNIT_USE_TYPEINFO_NAME
80 throw Exception( Message(
81 "expected exception not thrown",
82 "Expected exception type: " +
83 TypeInfoHelper::getClassName(
84 typeid( ExpectedExceptionType ) ) ) );
85 #else
86 throw Exception( Message("expected exception not thrown") );
87 #endif
88 }
89
90 private:
95 virtual void checkException( ExpectedExceptionType & )
96 {
97 }
98 };
99
100
101 CPPUNIT_NS_END
102
103 #endif // CPPUNIT_EXTENSIONS_EXCEPTIONTESTCASEDECORATOR_H
104
Exception
Exceptions thrown by failed assertions.Exception is an exception that serves descriptive strings thro...
Definition: Exception.h:19
ExceptionTestCaseDecorator
Expected exception test case decorator.
Definition: ExceptionTestCaseDecorator.h:44
Portability.h
ExceptionTestCaseDecorator::ExpectedExceptionType
ExpectedException ExpectedExceptionType
Definition: ExceptionTestCaseDecorator.h:47
ExceptionTestCaseDecorator::checkException
virtual void checkException(ExpectedExceptionType &)
Called when the exception is caught.
Definition: ExceptionTestCaseDecorator.h:95
Exception.h
TestCaseDecorator::runTest
void runTest()
FIXME: this should probably be pure virtual.
Definition: TestCaseDecorator.cpp:41
TestCaseDecorator.h
ExceptionTestCaseDecorator::ExceptionTestCaseDecorator
ExceptionTestCaseDecorator(TestCase *test)
Decorates the specified test.
Definition: ExceptionTestCaseDecorator.h:52
CPPUNIT_NS_END
#define CPPUNIT_NS_END
Definition: Portability.h:120
CPPUNIT_NS_BEGIN
#define CPPUNIT_NS_BEGIN
Definition: Portability.h:119
ExceptionTestCaseDecorator::runTest
void runTest()
Checks that the expected exception is thrown by the decorated test. is thrown.
Definition: ExceptionTestCaseDecorator.h:65
Message
Message associated to an Exception.A message is composed of two items:
Definition: Message.h:38
TestCase
A single test object.
Definition: TestCase.h:27
TestCaseDecorator
Decorator for Test cases.
Definition: TestCaseDecorator.h:18

| Send comments to: CppUnit Developers