
On Thu, Jul 24, 2008 at 1:17 AM, Gennadiy Rozental <rogeeff@gmail.com> wrote:
Dean Michael Berris <mikhailberis <at> gmail.com> writes:
Thanks, I've elected to convert my tests to use BOOST_FIXTURE_TEST_CASE ( testname, fixture_class_name ) instead. Now though, everything looks redundant because I have to put the name of the fixture class everywhere I have BOOST_FIXTURE_TEST_CASE (...).
Use BOOST_FIXTURE_TEST_SUITE and all test cases inside this test suite will get fixture automatically (see unit_test_example_07.cpp for example)
Okay, but it's not clear from this example whether using just the normal BOOST_AUTO_TEST_CASE ( test_name ) would work with the correct fixture type set using BOOST_FIXTURE_TEST_SUITE. Even in the example, BOOST_FIXTURE_TEST_SUITE (s,F) doesn't really convey much information except maybe (I'm guessing) create a fixture test suite 's' of type F. It isn't directly obvious how doing BOOST_FIXTURE_TEST_SUITE (...) will actually influence all BOOST_AUTO_TEST_CASE(s) (or in the example BOOST_AUTO_TEST_CASE_TEMPLATE) in the file. Perhaps using a convention like "do `#define BOOST_AUTO_TEST_FIXTURE fixture_type_name` before including 'boost/test/unit_test.hpp'" would work too and be more convenient -- especially in cases where you have a family of related tests in one file. That way you just did: #ifndef BOOST_AUTO_TEST_FIXTURE #define ... #endif in the library to use what the user intended. That way it was less intrusive than having to create a test suite when all you really have are a collection of test cases in a test file. Of course I may be missing some things, but now that I know about BOOST_FIXTURE_TEST_SUITE, I'll use that in the meantime. :D
I notice that there's a global level fixtures, but I'm more interested in something that get constructed/destroyed with every test case invocation -- much like the setUp() and tearDown() overloads in the xUnit family of frameworks.
The fixtures *are* constructed/destroyed per test case.
Even the global fixture? I was under the impression that the global fixture would be something that would be created/destroyed at the start/end of the program -- more like a program-global fixture. Did I misunderstand the implication of the term global fixtures? Thanks for the response, and I look forward to using this library more! -- Dean Michael C. Berris Software Engineer, Friendster, Inc.