È possibile inizializzare l'apparecchiatura solo una volta e utilizzarla in più casi di test all'interno della stessa suite di test? Nel seguente esempio, apparecchio è costruito e distrutto più volte:È possibile inizializzare l'apparecchio solo una volta e usarlo in più casi di test?
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()
Ma io voglio l'apparecchio per essere costruito solo una volta come inizia la suite di test e condiviso tra tutti i casi di test all'interno di esso. È possibile? Il distruttore verrebbe chiamato dopo essere uscito dalla suite di test.
Sto usando Boost Test Framework ma non ho problemi ad usare altri framework come UnitTest ++.
L'intenzione del dispositivo è di preparare l'ambiente per tutti i test case. Perché dovrebbe essere necessario prepararlo prima del primo caso ma non per gli altri? – harper
@harper Supponiamo di aprire un socket da utilizzare in tutti i casi di test. Non voglio che apra e chiuda il socket per ogni caso di test. Voglio aprirlo solo una volta, usarlo in più casi di test e poi chiuderlo dopo l'ultimo caso di test. –
http://boost.2283326.n4.nabble.com/Boost-Test-Initialize-fixture-only-once-td2626388.html –