2014-09-01 9 views

답변

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)