Python에서 가장 일반적으로 사용되는 단위 테스트 프레임워크 중 하나는 표준 라이브러리에 포함된 단위 테스트입니다. 테스트 생성 및 실행은 물론 결과 보고를 위한 다양한 도구 세트를 제공합니다.
unittest 프레임워크의 주요 기능
테스트 케이스: 테스트 케이스는 unittest.TestCase를 서브클래싱하여 생성됩니다. test_로 시작하는 클래스의 각 메서드는 테스트로 간주됩니다.
어설션: 프레임워크는 예상 결과를 확인하기 위한 다양한 어설션 메서드(예:ertEqual,ertTrue,asserFalse등)를 제공합니다.
테스트 실행기: 프레임워크에는 테스트를 실행하고 결과를 보고하는 테스트 실행기가 포함되어 있습니다.
단위 테스트의 기본 구조
unittest 모듈 가져오기: 단위 테스트 라이브러리를 가져오는 것부터 시작합니다.
테스트 케이스 생성:unittest.TestCase.
테스트 방법 정의: 각 방법은 test_로 시작해야 하며 예상되는 동작을 확인하기 위한 어설션을 포함해야 합니다.
테스트 실행: 스크립트가 직접 실행되는 경우 단위 테스트.main()을 사용하여 테스트를 실행합니다.
간단한 예
다음은 단위 테스트 프레임워크를 사용하여 간단한 기능을 테스트하는 방법을 보여주는 간단한 예입니다.
테스트할 기능
먼저 테스트할 간단한 함수를 만들어 보겠습니다.
def add(a, b):
b
def 빼기(a, b):
a - b
함수에 대한 단위 테스트
이제 더하기 및 빼기 함수에 대한 단위 테스트를 만듭니다.
단위 테스트 가져오기
from math_functions import add, subtract # 테스트할 함수 가져오기
클래스 TestMathFunctions(unittest.TestCase):
def test_add(self): self.assertEqual(add(2, 3), 5) # Test case: 2 3 = 5 self.assertEqual(add(-1, 1), 0) # Test case: -1 1 = 0 self.assertEqual(add(0, 0), 0) # Test case: 0 0 = 0 def test_subtract(self): self.assertEqual(subtract(5, 3), 2) # Test case: 5 - 3 = 2 self.assertEqual(subtract(-1, -1), 0) # Test case: -1 - (-1) = 0 self.assertEqual(subtract(0, 5), -5) # Test case: 0 - 5 = -5
if 이름 == '메인':
단위테스트.메인()
단위 테스트 설명
importunittest:unittest 모듈을 가져옵니다.
from math_functions import add, subtract: 테스트하려는 함수를 가져옵니다.
class TestMathFunctions(unittest.TestCase): unittest.TestCase.
에서 상속되는 테스트 케이스 클래스를 정의합니다.test_로 시작하는 각 메서드는 별도의 테스트를 나타냅니다.
각 테스트 메서드 내에서 self.assertEqual()은 함수의 출력이 예상 값과 일치하는지 확인합니다.
if name == 'main':unittest.main(): 이 줄을 사용하면 스크립트가 직접 실행될 때 테스트를 실행할 수 있습니다.
테스트 실행
테스트를 실행하려면 test_math_functions.py 스크립트를 실행하기만 하면 됩니다. 명령줄에서 이 작업을 수행할 수 있습니다.
파이썬 test_math_functions.py
산출
모든 테스트가 통과하면 다음과 유사한 출력이 표시됩니다.
0.001초 안에 2번의 테스트 실행
좋아요
이는 test_add 및 test_subtract 메소드가 모두 성공적으로 통과되었음을 나타냅니다. 어설션이 실패하면 unittest는 실패를 보고하고 어떤 테스트가 실패했으며 그 이유를 보여줍니다.
결론
Python의 단위 테스트 프레임워크는 단위 테스트를 생성하고 실행하는 간단하고 효과적인 방법을 제공합니다. 함수에 대한 테스트를 작성하면 해당 함수가 예상대로 작동하고 개발 프로세스 전반에 걸쳐 높은 코드 품질을 유지할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3