함수가 예상한 예외를 발생시키지 않는 경우에만 실패하는 단위 테스트를 작성합니다.
또한 Python 함수에서 예외가 발생하는지 테스트합니다.
예를 들어 Python의 유형 안전성을 테스트하기 위해 Python 셸에 붙여넣은 샘플 코드를 참조하세요.
예
import unittest class MyTestCase(unittest.TestCase): def test_1_cannot_add_int_and_str(self): with self.assertRaises(TypeError): 1 + '1' def test_2_cannot_add_int_and_str(self): import operator self.assertRaises(TypeError, operator.add, 1, '1') unittest.main(exit=False)
테스트 실행
출력
그리고 터미널은 다음을 출력합니다 -
.. ---------------------------------------------------------------------- Ran 2 tests in 0.001s OK
테스트 1은 assertRaises를 컨텍스트 관리자로 사용하여 기록하는 동안 오류가 제대로 포착되고 정리되도록 합니다.
컨텍스트 관리자 없이도 작성할 수 있습니다(테스트 2 참조). 첫 번째 인수는 예상되는 오류 유형이고 두 번째 인수는 테스트 중인 함수이며 나머지 인수와 키워드 인수는 해당 함수에 전달됩니다.
컨텍스트 관리자를 사용하는 것이 훨씬 더 간단하고 읽기 쉽습니다.
예상대로 1과 '1'을 추가하려고 하면 TypeError가 발생합니다.