Kann das Gerät nur einmal initialisiert werden und in mehreren Testfällen innerhalb derselben Testsuite verwendet werden? Im folgenden Beispiel wird Befestigung gebaut und zerstört mehrere Male:Kann das Gerät nur einmal initialisiert und in mehreren Testfällen verwendet werden?
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()
Aber ich will das Gerät nur einmal gebaut werden als die Testsuite beginnt und unter allen Testfällen in ihm geteilt. Ist es möglich? Der Destruktor würde nach dem Verlassen der Testsuite aufgerufen werden.
Ich verwende Boost Test Framework, habe aber kein Problem mit anderen Frameworks wie UnitTest ++.
Die Absicht der Vorrichtung ist, die Umgebung für alle Testfälle vorzubereiten. Warum sollte es notwendig sein, es vor dem ersten Fall vorzubereiten, aber nicht für die anderen? – harper
@harper Angenommen, ich öffne einen Socket, der in allen Testfällen verwendet werden soll. Ich möchte nicht, dass die Buchse für jeden Testfall geöffnet und geschlossen wird. Ich möchte es nur einmal öffnen, benutze es in mehreren Testfällen und schließe es nach dem letzten Testfall. –
http://boost.2283326.n4.nabble.com/Boost-Test-Initialize-fixture-only-once-td2626388.html –