~ubuntu-branches/ubuntu/oneiric/psi/oneiric

« back to all changes in this revision

Viewing changes to third-party/cppunit/cppunit/include/cppunit/TestFixture.h

  • Committer: Bazaar Package Importer
  • Author(s): Jan Niehusmann
  • Date: 2009-09-25 17:49:51 UTC
  • mfrom: (6.1.3 sid)
  • Revision ID: james.westby@ubuntu.com-20090925174951-lvm7kdap82o8xhn3
Tags: 0.13-1
* Updated to upstream version 0.13
* Set Standards-Version to 3.8.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#ifndef CPPUNIT_TESTFIXTURE_H    // -*- C++ -*-
2
 
#define CPPUNIT_TESTFIXTURE_H
3
 
 
4
 
#include <cppunit/Portability.h>
5
 
 
6
 
CPPUNIT_NS_BEGIN
7
 
 
8
 
 
9
 
/*! \brief Wraps a test case with setUp and tearDown methods.
10
 
 * \ingroup WritingTestFixture
11
 
 *
12
 
 * A TestFixture is used to provide a common environment for a set
13
 
 * of test cases.
14
 
 *
15
 
 * To define a test fixture, do the following:
16
 
 * - implement a subclass of TestCase 
17
 
 * - the fixture is defined by instance variables 
18
 
 * - initialize the fixture state by overriding setUp
19
 
 *   (i.e. construct the instance variables of the fixture)
20
 
 * - clean-up after a test by overriding tearDown.
21
 
 *
22
 
 * Each test runs in its own fixture so there
23
 
 * can be no side effects among test runs.
24
 
 * Here is an example:
25
 
 * 
26
 
 * \code
27
 
 * class MathTest : public CppUnit::TestFixture {
28
 
 * protected:
29
 
 *   int m_value1, m_value2;
30
 
 *
31
 
 * public:
32
 
 *   MathTest() {}
33
 
 *
34
 
 *   void setUp () {
35
 
 *     m_value1 = 2;
36
 
 *     m_value2 = 3;
37
 
 *   }
38
 
 * }
39
 
 * \endcode
40
 
 *
41
 
 * For each test implement a method which interacts
42
 
 * with the fixture. Verify the expected results with assertions specified
43
 
 * by calling CPPUNIT_ASSERT on the expression you want to test:
44
 
 * 
45
 
 * \code
46
 
 * public: 
47
 
 *   void testAdd () {
48
 
 *     int result = m_value1 + m_value2;
49
 
 *     CPPUNIT_ASSERT( result == 5 );
50
 
 *   }
51
 
 * \endcode
52
 
 * 
53
 
 * Once the methods are defined you can run them. To do this, use
54
 
 * a TestCaller.
55
 
 *
56
 
 * \code
57
 
 * CppUnit::Test *test = new CppUnit::TestCaller<MathTest>( "testAdd", 
58
 
 *                                                          &MathTest::testAdd );
59
 
 * test->run();
60
 
 * \endcode
61
 
 *
62
 
 *
63
 
 * The tests to be run can be collected into a TestSuite. 
64
 
 * 
65
 
 * \code
66
 
 * public: 
67
 
 *   static CppUnit::TestSuite *MathTest::suite () {
68
 
 *      CppUnit::TestSuite *suiteOfTests = new CppUnit::TestSuite;
69
 
 *      suiteOfTests->addTest(new CppUnit::TestCaller<MathTest>(
70
 
 *                              "testAdd", &MathTest::testAdd));
71
 
 *      suiteOfTests->addTest(new CppUnit::TestCaller<MathTest>(
72
 
 *                              "testDivideByZero", &MathTest::testDivideByZero));
73
 
 *      return suiteOfTests;
74
 
 *  }
75
 
 * \endcode
76
 
 * 
77
 
 * A set of macros have been created for convenience. They are located in HelperMacros.h.
78
 
 *
79
 
 * \see TestResult, TestSuite, TestCaller,
80
 
 * \see CPPUNIT_TEST_SUB_SUITE, CPPUNIT_TEST, CPPUNIT_TEST_SUITE_END, 
81
 
 * \see CPPUNIT_TEST_SUITE_REGISTRATION, CPPUNIT_TEST_EXCEPTION, CPPUNIT_TEST_FAIL.
82
 
 */
83
 
class CPPUNIT_API TestFixture
84
 
{
85
 
public:
86
 
  virtual ~TestFixture() {};
87
 
 
88
 
  //! \brief Set up context before running a test.
89
 
  virtual void setUp() {};
90
 
 
91
 
  //! Clean up after the test run.
92
 
  virtual void tearDown() {};
93
 
};
94
 
 
95
 
 
96
 
CPPUNIT_NS_END
97
 
 
98
 
 
99
 
#endif