실패시에 throw되는 함수를 테스트하는 가장 좋은 방법은 무엇입니까? 또는 실패에 상당히 영향을받지 않는 기능을 테스트 할 수 있습니까?실패시 throw하는 함수 테스트
예를 들면; 포트를 올바르게 초기화 할 수없는 경우 생성자에서 throw하는 I/O 완료 포트 클래스가 있습니다. 이 초기화 프로그램 목록에서 CreateIoCompletionPort Win32 함수를 사용합니다. 핸들이 올바르게 설정되어 있지 않은 경우 (null 이외의 값), 생성자는 예외를 throw합니다. 나는이 기능이 실패한 것을 본 적이 없다.
내 질문은)는
입니다 그래서, 그들은 제대로 작동합니다 실패 할 경우이 (내 코드에서와 같은 기타 기능), 코드가 긴 공백을 포함하여 50 줄 것을 꽤 확신 시험해 볼만한 가치가있다.
b) 테스트 해 볼 가치가 있다면?
c) 단위 테스트를 거친 간단한 래퍼 클래스를 사용해야합니까?
b)에 대해서는 CreateIoCompletionPort를 재정의하고 값을 전달하는 방법에 대해 생각했습니다. 단위 테스트에서는 그것을 무시하고 특정 값이 전달되면 0을 반환하도록 만듭니다. 그러나 생성자에서 사용되므로 정적이어야합니다. 이것은 유효하거나 그렇지 않은 것 같습니까?