Я не совсем уверен, что если принятый ответ правильный, потому что, если я использую тестовый код с подталкивание веб-сайта (http://www.boost.org/doc/libs/1_57_0/libs/test/doc/html/utf/user-guide/fixture/test-suite-shared.html)
#define BOOST_TEST_MODULE example
#include <boost/test/included/unit_test.hpp>
struct F {
F() : i(0) { BOOST_TEST_MESSAGE("setup fixture"); }
~F() { BOOST_TEST_MESSAGE("teardown fixture"); }
int i;
};
//____________________________________________________________________________//
BOOST_FIXTURE_TEST_SUITE(s, F)
BOOST_AUTO_TEST_CASE(test_case1)
{
BOOST_CHECK(i == 1);
}
//____________________________________________________________________________//
BOOST_AUTO_TEST_CASE(test_case2)
{
BOOST_CHECK_EQUAL(i, 0);
}
//____________________________________________________________________________//
BOOST_AUTO_TEST_SUITE_END()
ожидаемая последовательность вызова выполнить ответ должен быть
setup fixture
test_case1
test_case2
teardown fixture
, но на самом деле это
setup fixture
test_case1
teardown fixture
setup fixture
test_case2
teardown fixture
Я не кп ow, если это ошибка, потому что я интерпретирую документацию BOOST_FIXTURE_TEST_SUITE
, чтобы сделать именно первое поведение. Поведение секунд также можно выполнить с помощью BOOST_FIXTURE_TEST_CASE
.
изначально я думал, что это нужно, чтобы открыть соединение с моей БД и закрыть его как можно быстрее. но после некоторого времени размышления я начинаю верить, что мне не нужно так быстро его закрывать ... Или просто открывать-закрывать для каждого случая, а не весь набор – Alek86
Почему бы не повторно инициализировать/очистить после каждого теста? Вы можете использовать набор инструментов для этого и поместить свой код init/cleardown в конструктор/деструктор, так как каждый тестовый пример будет получен из набора инструментов, который вы можете обеспечить, чтобы каждый тестовый пример начинался с известного состояния. – mark