Я использую boost.test как набор тестов. Я хочу знать, возможно ли сделать некоторые предварительные условия для тестирования. Например,Boost.Test howto создает «тестовую зависимость»
uniqut_ptr<MyClass> g_class;
BOOST_AUTO_TEST_CASE(test1)
{
BOOST_REQUIRE_NO_THROW(g_class = CreateMyClass());
}
BOOST_AUTO_TEST_CASE(test2)
{
// This test need the test1 as passed
BOOST_REQUIRE(g_class->doSomething());
}
В этом случае, если программа тестирования test1 потерпит крах в test2. Я знаю, что я могу добавить BOOST_REQUIRE(g_class)
в начале каждого теста. Но есть ли другой путь?
Ед. Испытания не должны зависеть от порядка исполнения. Это не ограничение Boost.Test, а принцип модульного тестирования в целом. Чтобы разделить обычные вещи, вы можете захотеть использовать светильники –
Но разве test1 всегда выполняется первым из test2 правильно? –
Я так думаю, но вы не должны полагаться на него. Вы должны написать свои тесты таким образом, чтобы они работали независимо от того, каков порядок выполнения: –