파이썬에서 제기 된 예외를 어설 션하는 방법을 알고 싶습니다. assertRaises (ExpectedException)로 시도했지만 테스트가 실패하고 콘솔 출력에서 예상 된 Exception이 발생했다고 알려주었습니다.
그럼 어떻게 작성하면 예외가 캡처되고 올바르게 적용될 수 있습니까?Python에서 PyUnit으로 발생하는 커스텀 예외를 어설 션하는 방법은 무엇입니까?
-1
A
답변
1
AssertRaises를 (제기 년대 하나로서) 모든 exce을 테스트 할 수 있습니다 당신이 코드에서 키운 ption. assertRaises를 사용
구문 :
원리assertRaises(CustomException, Function that throws the exception, Parameters for function(In case of multiple params, they will be comma separated.))
:
assertRaises가 발생는 pyUnit는 내부에 언급 된 기능 실행 CustomException 함유 제외한 블록 블록 시도를-제외. 예외가 제대로 처리되면 테스트는 실패하고 그렇지 않으면 실패합니다.
assertRaises에 대한 자세한 내용은 How to properly use unit-testing's assertRaises() with NoneType objects?에서 확인할 수 있습니다.
0
예외를 발생시키는 모듈과 테스트 코드가 다른 네임 스페이스의 예외를 참조하는 경우 발생합니다.
따라서, 예를 들어, 당신이있는 경우 : 두 파일이 실제로 다른 클래스/객체를 가리키는 결국 때문에
# code_to_be_tested.py
from module_with_exception import * # including CustomException
...
raise CustomException()
# test_code.py
import module_with_exception.CustomException as CE
...
with assertRaises(CE) ...
발생합니다.
그래서,이 주위에 두 가지 방법 : 가능한 모든
from blah import *
같은, 테스트 모듈 에서 예외를 잡아 않은 경우 경우
- 는 같은 방식으로 참조 자체, 그게 (즉,
from code_to_be_tested import CustomException
)