코의 assert_raises를 사용하는 방법?
문서를 검색했지만 찾을 수 없습니다. 별로 설명하지 않는 커플이 있었다.
누군가 나에게 코의 설명을 할 수 있습니까?
assert_raises(what should I put here?)
기능 및 사용 방법?
assert_raises()
기능은 특정 매개 변수되게 할 때 반드시 함수 호출은 지정된 예외가 발생하게 테스트합니다.
예를 들어, add
두 개의 숫자를 더하는 함수 가있는 TypeError
경우 정수와 문자열을 전달할 때 a를 발생 시켜야 합니다. 그래서:
from nose.tools import assert_raises
def add(x, y):
return x + y
assert_raises(TypeError, add, 2, "0")
첫 번째 인수는 예상되는 예외 유형입니다. 두 번째는 호출 할 함수입니다. 인수의 나머지 부분 (이 경우가 될 것이다 함수에 전달됩니다 x
및 y
기능 내부).
함수에 의해 예상 된 예외가 발생하면 어설 션이 전달됩니다.
받아 들여지는 대답은 정확하지만 assert_raises
방법에 더 나은 사용이 있다고 생각 합니다.
단순히 예외가 발생한다고 주장하고 싶다면 @raises
구문 을 사용하는 것이 더 간단하고 깔끔 할 것 입니다.
@raises(HTTPError)
def test_exception_is_raised:
call_your_method(p1, p2)
그러나 발생한 예외에 대해 더 많은 작업을 수행하고 싶다고 가정합니다. 예를 들어, 발생한 HTTPError가 500 : Server Error 대신 401 : Unauthorized 유형이라고 주장해야합니다 .
위의 구문은 도움이되지 않는 이러한 상황에서 assert_raises
but을 다른 방식으로 사용해야합니다 . callable
두 번째 매개 변수로 전달하지 않으면 assert_raises
예외 세부 정보를 추가로 테스트하는 데 사용할 수있는 컨텍스트가 반환됩니다.
def test_exception_is_raised:
with assert_raises(HTTPError) as cm:
call_your_method(p1, p2)
ex = cm.exception # raised exception is available through exception property of context
ok_(ex.code == 401, 'HTTPError should be Unauthorized!')
참조 URL : https://stackoverflow.com/questions/11767938/how-to-use-noses-assert-raises
'programing' 카테고리의 다른 글
Google 스프레드 시트에서 날짜 추가 기능을 활용하는 방법은 무엇입니까? (0) | 2021.01.17 |
---|---|
Android에서만 코드를 통해 진행률 표시 줄 색상 변경 (0) | 2021.01.17 |
JavaScript의 for 루프 내에서 비동기 함수 호출 (0) | 2021.01.17 |
java.lang.RuntimeException : Parcel에서 입력 채널 파일 설명자를 읽을 수 없습니다. (0) | 2021.01.16 |
HTML5 상용구 대 HTML5 재설정 (0) | 2021.01.16 |