![]() |
> The Unit Test Framework > User's guide > Fixtures > Global fixture |
Any global initialization that needs to be performed every time testing begins or a global cleanup that is to be performed once testing is finished is called a global fixture. The UTF global fixture design is based on a generic test fixture model and is supported by the utility class boost::unit_test::global_fixture. The global fixture design allows any number of global fixtures to be defined in any test file that constitutes a test module. Though some initialization can be implemented in the test module initialization function, there are several reasons to prefer the global fixture approach:
To define a global test module fixture you need to implement a class that matched generic fixture model and passed it as an argument to the macro BOOST_GLOBAL_FIXTURE.
BOOST_GLOBAL_FIXTURE(fixure_name)
The statement, that performs global fixture definition, has to reside at a test file scope.
Example 25. Global fixture
#define BOOST_TEST_MODULE example
#include <boost/test/included/unit_test.hpp>
#include <iostream>
//____________________________________________________________________________//
struct MyConfig {
MyConfig() { std::cout << "global setup\n"; }
~MyConfig() { std::cout << "global teardown\n"; }
};
//____________________________________________________________________________//
BOOST_GLOBAL_FIXTURE( MyConfig );
BOOST_AUTO_TEST_CASE( test_case )
{
BOOST_CHECK( true );
}
//____________________________________________________________________________//
Source code |
| | Show output |
> example global setup Running 1 test case... global teardown *** No errors detected