클라이언트 서버 N/W에서 부스트 유닛 테스트를 수행하려고합니다.부스트 유닛 테스트 예외
예를 들어 예외가 발생했는지 어떻게 테스트 할 수 있습니까? 서버가 온라인 상태가 아니면 boost::asio::error::Connection_refused
?
설명서를 검토 한 결과 여전히 혼란 스럽습니다 (boost, C++ newbie).
참고 저는 IP 주소와 포트 번호를 설정하고 서버에 연결하는 생성자가 포함 된 BOOST_AUTO_TEST_CASE
을 실행했습니다. BOOST_AUTO_TEST
을 실행할 때 서버가 오프라인 상태이고 아무런 오류도 감지되지 않을 경우 예상되는 예외가 발생하지만 질문이없는 것 같습니다. BOOST_CHECK_THROW
또는 BOOST_WARN_THROW
은 내가없는 상태에서 테스트를 수행 할 수 있다면 어떻게해야합니까?
BOOST_AUTO_TEST_CASE(testMissingServer) {
MyClient client;
BOOST_CHECK_THROW(
client.connect(someNonexistentServerIP, somePort),
boost::asio::error::Connection_refused
);
}
이 수동으로 다음과 같이 보일 것입니다 수행 :
달성하고자하는 것은 완전히 * 분명하지 않습니다. 당신의 질문을 이해하는 한, 당신은 이미 오프라인 서버에 연결하려고 할 때 예상되는 예외를 성공적으로 얻는 테스트 케이스를 작성했습니다. 그래서 당신의 문제는 무엇입니까? –
응답 Arne에 감사드립니다. 나는 BOOST_CHECK_THROW 나 BOOST_WARN_THROW 같은 것을 사용하지 않고 테스트를 실행했다. 그런 것들이 필요한지 궁금해했다. 테스트를 실행할 수 있다면 BOOST_CHECK_Throw, e.t.c를 사용하지 않고 어떤 예외도없이 예외를 얻습니다. – user2911641
아, 이제 코드가 어떻게 생겼는지 추측 할 수 있습니다 (올바른 예외를 잡았을 때 "수동으로 잡으려고 시도하고 성공"하겠습니까?). 그러나 친절하게 제공한다면 우리는 말할 수 있습니다. builtin boost 매크로의 이점은 무엇입니까? 나는 당신이 자신의 질문을 편집하기에 충분한 담당자가 없다고 가정하기 때문에 [SSCCE] (http://sscce.org)에 붙여 넣기 링크를 주시면 우리가 편집 해 드리겠습니다. –