오류가 발생하지 않는지 테스트하는 방법은 무엇인가요?
R 패키지에 대한 테스트를 구현하기 시작했고 'testthat' 패키지를 사용하고 있습니다. 저는 테스트에 익숙하지 않기 때문에 제 접근 방식이 잘못되었을 수 있습니다.
현재 16 번째로 실행될 때마다 실패하는 함수가 있는데,이 문제를 해결하기 전에 다시 나타나면이를 포착하는 회귀 테스트를 작성하고 싶습니다.
예를 들어 다음은 항상 동일한 오류 메시지를 던집니다:
for i in (1:17) myfun()
myfun`은 아무것도 반환하지 않고 데이터베이스 연결을 여는 부작용만 있습니다. 오류를 예상하고 반환되면 통과하는 테스트를 작성할 수 있다는 것은 분명합니다:
expect_error(for (i in 1:17) myfun())
그러나 오류가 발생하지 않도록 테스트를 작성하는 방법을 잘 모르겠습니다. 분명하지 않기 때문에 아마도 내 접근 방식이 잘못된 것 같습니다. 좀 더 구체적인 테스트를 작성하는 방법을 알아낼 수 있지만 이 테스트부터 시작하고 싶습니다.
이러한 오류가 나타나지 않도록 하려면 어떤 유형의 테스트를 작성해야 하나요?
36
4
이후 0.11 버전 (via [스타우디오 블로그] (https://blog.rstudio.org/2015/10/15/testthat-0-11-0/)) 는 테스트 좁히어 직접 지원 부족 오류:
동일한 포착하기 위한 '경고' 와 '메시지':
때는기대어 참고: '정보' 의 경우 점심시간요 루프 '기능을 추가 정보를 전달하는' expect_xxx 파라메트르 있습니다. 할 수 있도록.
다른 기대_오류로 감싸는 것도 좋습니다.
예시:
예를 들어
는 오류가 있는지 테스트합니다.
이면 첫 번째 부분은 테스트를 통과했지만 두 번째 부분은 실패했음을 의미합니다.
다음은 오류가 발생하지 않을 때
tryCatch
가0
을 반환할 것이라는 기대를 사용하는 한 가지 해결책입니다: