2008-10-05 5 views
25

테스트 대상 객체가 예외를 발생시키는 Boost 유닛 테스트 케이스가 있습니다 (예외가 발생하는 테스트 임). 테스트에서 특정 예외를 예상하도록 지정하려면 어떻게합니까?Boost.Test를 사용하여 예외를 예상하도록 어떻게 지정합니까?

테스트에 BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES를 사용하여 특정 수의 실패가 있어야한다고 지정할 수 있지만 이는 다소 불명확합니다. 테스트의 특정 시점에서 예외가 throw되어야하며 실패로 간주해서는 안된다고 말할 수 있기를 원합니다.

답변

41

작동하지 않습니까?

BOOST_CHECK_THROW (expression, an_exception_type); 

표현식이 주어진 예외 유형을 throw하거나 그렇지 않으면 테스트가 통과해야합니다. 'CHECK'와 다른 심각도가 필요한 경우 BOOST_WARN_THROW() 또는 BOOST_REQUIRE_THROW()을 대신 사용할 수도 있습니다. the documentation

10

또한 예외를 확인하는 테스트 기능을 지정할 수있는 BOOST_CHECK_EXCEPTION을 사용할 수도 있습니다.