BOOST_REQUIRE는 테스트 스위트에서 현재 테스트 케이스를 중지하지만 다른 테스트 케이스로 이동합니다.
"컴파일 된 솔루션"을 요청했을 때 내가 원하는 것을 실제로 볼 수 없지만 작동해야하는 트릭입니다. 전체 테스트 스위트의 안정성을 확인하기 위해 부울을 사용합니다. 불안정한 경우 즉 BOOST_REQUIRE가 트리거 된 경우 모든 것을 중지합니다.
희망이 있으면 도움을 드리겠습니다.
//#include <...>
//FIXTURES ZONE
struct fixture
{
fixture():x(0.0),y(0.0){}
double x;
double y;
};
//HELPERS ZONE
static bool test_suite_stable = true;
void in_strategy(bool & stable)
{
if(stable)
{
stable = false;
}
else
{
exit();
}
}
void out_strategy(bool & stable)
{
if(!stable)
{
stable = true;
}
}
BOOST_AUTO_TEST_SUITE(my_test_suite)
//TEST CASES ZONE
BOOST_FIXTURE_TEST_CASE(my_test_case, fixture)
{
in_strategy(test_suite_stable);
//...
//BOOST_REQUIRE() -> triggered
out_strategy(test_suite_stable);
}
BOOST_FIXTURE_TEST_CASE(another_test_case, fixture)
{
in_strategy(test_suite_stable); //-> exit() since last triggered so stable = false
//...
//BOOST_REQUIRE()
out_strategy(test_suite_stable);
}
BOOST_TEST_SUITE_END()
Benoit.
BOOST_REQUIRE_THROW는 예외를 throw하여 전체 테스트 스위트의 실행을 중지해야합니다. 고마워요. @ rhalbersma. – TemplateRex
. 나는 그것을 시도 할 것이다. 왜 그걸로 대답하지 그래? –
부스트 테스터 매뉴얼을 더 자세히 읽은 후에 제안이 부정확했기 때문에. BOOST_REQUIRE_THROW는 예외가 던져 졌는지 확인하는 단위 테스트입니다. 그것은 스스로를 던지지 않습니다. – TemplateRex