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

파이썬 단위 테스트란 무엇입니까?

<시간/>

단위 테스트란 무엇입니까?

단위 테스트는 시스템의 각 개별 구성 요소를 테스트하는 소프트웨어 테스트 유형입니다. 단위 테스트는 개발자에게 중요한 관행입니다. 소프트웨어의 모든 구성 요소가 예상대로 적절하게 작동하는지 확인합니다. 단위 테스트는 주로 소프트웨어 개발의 코딩 단계에서 개발자가 수행합니다.

단위 테스트를 사용하면 개발자가 시스템 또는 소프트웨어의 특정 구성 요소에 문제가 있는지 알게 되고 개발자가 해당 특정 단위를 수정할 수 있으므로 문제를 쉽게 수정할 수 있습니다.

파이썬 단위 테스트

파이썬에는 unittest 라는 내장 패키지가 있습니다. 단위 테스트를 수행하는 데 사용됩니다. 단위 테스트는 개발자가 코드가 실패할 수 있는 가능한 경우를 예상하고 코드가 이러한 경우에 대해 테스트되기 때문에 코드를 미래의 증거로 만듭니다. 그럼에도 불구하고 특정 경우를 놓칠 수 있지만 여전히 대부분의 경우가 해결되고 코드는 이러한 경우에 대해 테스트를 받으십시오.

unittest 모듈은 다음과 같이 파이썬 프로그램에서 이 모듈을 import 하여 사용할 수 있습니다.

import unittest

예시

정사각형의 면적을 계산하는 간단한 함수가 있다고 가정합니다. 이 파일을 'area.py'라는 이름으로 저장합니다.

def area(a):
   return (a+a)

이제 위의 함수에 대한 단위 테스트 코드를 작성해 보겠습니다. 이 코드는 함수가 예상한 출력을 제공하는지 알려줍니다. 단위 테스트 코드 파일을 "unit_test.py"라는 이름으로 저장합니다.

unit_test.py &mnus;

from area import *
import unittest

class Testarea(unittest.TestCase):
   def test_area(self):
      self.assertAlmostEqual(area(5),25)
      self.assertAlmostEqual(area(3),9)
      self.assertAlmostEqual(area(4),16)

여기에서 테스트할 코드가 포함된 파일을 가져옵니다. 단위 테스트 메소드 assertAlmostEqual() 사용. 이것은 일부 입력으로 area 함수를 호출하고 두 번째 매개변수에는 함수에서 반환될 예상 출력이 포함됩니다. area()에 의해 반환된 출력이 예상 출력과 같으면 테스트가 통과되고 그렇지 않으면 실패합니다.

이제 명령 프롬프트에서 unit_test.py를 실행하여 area() 코드가 테스트를 통과하는지 확인합니다.

명령 프롬프트에서 다음 명령을 실행하여 unit_test 파일을 실행합니다.

python -m unittest unit_test.py

출력

C:\Users\Inderjit Singh\Desktop>python -m unittest unit_test.py
F
======================================================================
FAIL: test_area (unit_test.Testarea)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "C:\Users\Inderjit Singh\Desktop\unit_test.py", line 7, in test_area
      self.assertAlmostEqual(area(5),25)
AssertionError: 10 != 25 within 7 places (15 difference)

----------------------------------------------------------------------
Ran 1 test in 0.001s

FAILED (failures=1)

우리 코드는 단위 테스트에 실패했습니다. 원인은 역추적에 나와 있습니다. 첫 번째 함수인 self.assertAlmostEqual(area(5),25)은 코드를 실패하게 만듭니다. 함수는 10을 반환하지만 예상 출력은 25이기 때문에

이것은 쉬운 기능이므로 이에 대한 수정 사항을 알고 있습니다. 지역() 코드가 잘못되었습니다. (a+a) 대신 (a*a)를 반환해야 합니다.

area() 코드를 수정하고 단위 테스트를 다시 실행해 봅시다.

def area(a):
   return (a*a)

unit_test.py 다시 실행

C:\Users\Inderjit Singh\Desktop>python -m unittest unit_test.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

이제 area()에서 코드를 수정했으므로 OK 상태로 성공적으로 실행됩니다. 이렇게 하면 unit_test.py 파일에 지정된 모든 경우에 대해 코드가 완벽하게 실행됩니다.

이것은 단위 테스트에 대한 아이디어를 제공하기 위한 매우 간단한 아이디어였습니다. unittest 모듈에는 개발 과정에서 단위 테스트에 사용되는 다양한 기능이 있습니다.