TestCase.h
1/*
2 * Copyright (C) 2005-2008 by Dr. Marc Boris Duerner
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * As a special exception, you may use this file as part of a free
10 * software library without restriction. Specifically, if other files
11 * instantiate templates or use macros or inline functions from this
12 * file, or you compile this file and link it with other files to
13 * produce an executable, this file does not by itself cause the
14 * resulting executable to be covered by the GNU General Public
15 * License. This exception does not however invalidate any other
16 * reasons why the executable file might be covered by the GNU Library
17 * General Public License.
18 *
19 * This library is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * Lesser General Public License for more details.
23 *
24 * You should have received a copy of the GNU Lesser General Public
25 * License along with this library; if not, write to the Free Software
26 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
27 */
28#ifndef PT_UNIT_TESTCASE_H
29#define PT_UNIT_TESTCASE_H
30
31#include <Pt/Unit/Api.h>
32#include <Pt/Unit/Test.h>
33#include <Pt/Unit/TestFixture.h>
34#include <string>
35
36namespace Pt {
37
38namespace Unit {
39
80 class PT_UNIT_API TestCase : public Test
81 , public TestFixture
82 {
83 private:
85 class PT_UNIT_API Context : public TestContext
86 {
87 public:
88 Context(TestFixture& fixture, TestCase& test)
89 : TestContext(fixture, test)
90 , _test(test)
91 {}
92
93 protected:
94 virtual void exec()
95 { _test.test(); }
96
97 private:
98 TestCase& _test;
99 };
100
101 public:
108 TestCase(const std::string& name);
109
115 virtual void run();
116
122 virtual void setUp();
123
130 virtual void tearDown();
131
132 protected:
137 virtual void test() = 0;
138 };
139
140} // namespace Unit
141
142} // namespace Pt
143
144#endif
TestCase(const std::string &name)
Construct by name.
virtual void run()
Runs the test When the test is run, 'setUp' will be called first, then 'test' and finally 'tearDown'....
virtual void test()=0
Implements the actual test procedure When the test is run, this method will be called after setUp and...
virtual void setUp()
Set up conText before running a test.
virtual void tearDown()
Clean up after the test run.
Context in which test are run.
Definition TestContext.h:47
Fixture interface for tests.
Definition TestFixture.h:42
Test(const std::string &name)
Construct a test by name.
Definition Test.h:145
Protocol and data driven unit testing framework.
Core module.
Definition Allocator.h:33