나는 최근에 간단하지만 심한 버그를 발견했습니다. 나는 목록이 있었고 가장 작은 회원을 찾고 싶었습니다. 나는 Python에 내장 된 min()을 사용했다. 모든 이상한 시나리오에서 목록이 비어있을 때까지 (내가 예상 할 수없는 이상한 사용자 입력으로 인해) 훌륭하게 작동했습니다. 내 응용 프로그램이 ValueError (BTW - 공식 문서에 문서화되어 있지 않음)와 충돌했습니다.Python 커버리지가 실패 할 때 예외에 대한 사전 테스트
나는 매우 광범위한 단위 테스트를 실시하고 있으며 정기적으로 이와 같은 예기치 않은 결과를 피하기 위해 조사를 실시하고 있습니다. 또한 Pylint (모든 것이 PyDev에 통합되어 있음)를 사용하고 경고를 무시한 적은 없지만 사용자가하기 전에이 버그를 발견하지 못했습니다.
내 방법론에서 을 변경할 수 있습니까? 이러한 종류의 런타임 오류가 발생하지 않도록하려면 어떻게해야합니까? (Java/C#에서는 컴파일 타임에 발견 되었습니까?).
큰 try-except로 코드를 래핑하는 것 이상을 찾고 있습니다. 그 밖의 무엇을 할 수 있습니까? 파이썬 함수에서 다른 많은 빌드가 이렇게 불쾌한 놀라움을 숨기고 있습니까 ???
조금 명확히하기 위해 GRUB : 나는 최소/최대 생각하지 않습니다 없음 또는 0을 반환해야합니다.이 경우 예외를 발생시키는 것이 좋습니다. 나는 단지 내가 알지 못했던 테스트를 거치지 않은 숨겨진 경로를 찾았다 고 우려하고있다. 그리고 코드는 사용자로부터 지금까지 제거되었다 : 그것은 자연스러운 언어 여행 요청이다. 나는 모든 자료를 추출한다. 어떤 시점에서 나는 텍스트에서 한 지점까지 100km 반경에서 가장 큰 도시를 찾으려고 노력하지만 사용자가 옆에 0 개의 도시가있는 호주 공항에 들어갔다 ... 물론 나쁘다 ... –
잠재적 인 대답 : 예외를 발생시키는 원인이되는 빈리스트를 전달하지 않으면 부분적으로 덮여있는 것으로 보이는이 라인을 보여주기위한 커버리지를 향상시킨다! 그런 식으로 보도 내용 보고서에 나타날 것이고 나는 그것을 다루는 시험을 쓸 것이다. 그게 가능하니? –