Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 함수에서 예외가 발생하는지 어떻게 테스트합니까?

<시간/>

함수가 예상한 예외를 발생시키지 않는 경우에만 실패하는 단위 테스트를 작성합니다.

또한 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가 발생합니다.