본문 바로가기
Python

[Python] Unit Test

by UnoCode 2020. 7. 26.

유닛 테스트란 ?

내가 작성한 코드의 가장 작은 단위인 함수를 테스트하는 메소드 입니다. 

 

https://www.seguetech.com/the-benefits-of-unit-testing/

 

시스템을 테스트 하는 3가지 방법

 

1. UI Testing / End-To-End Testing

 

  • 눈으로 직접 내가 만든 프로그램에 들어가서 하나씩 눌러가며 태스트 하는 방법이다.
  • 보통 시나리오를 작성해서 테스트를 한다.

 

2. Integration 

 

  • 최초 두개이상의 클래스 또는 서브 스스템의 결합을 테스트하는 방법
  • 우리가 Postman 또는 httpie로 호출해서 Json response가 제대로 가는지 출력 해보는 테스트

 

3. Unit Test

 

  • 함수 단위를 테스트 하는 방법입니다.

Unit Test의 장점

 

1. 사람이 하는게아니기 때문에 속도가 다른 것들과는 비교도 안되게 빠르다.

 

2. 코드를 수정하여 버그가 났다면 어디서 났는지 알기가 쉽다. 즉 유지보수가 편하다.

 

Python Unit Test 용어

 

 TestCase : unittest 프레임 워크의 테스트 조직의 기본 단위

 

 Fixture: 테스트를 진행할때 필요한 테스트용 데이터 혹은 설정 등을 이야기 한다

 

 assertion: unittest에서 테스트 하는 부분이 제대로 됬는지 확인하는 부분

 

 

 

Unit Test 개발 가이드(python)

 

1. 모듈 import pytest or unittest

import unittest
# mycalc.py

def 곱하기(a, b):
    return a*b

def 제곱(a):
    return a**2
# tests.py

import unittest
import mycalc

class MyCalcTest(unittest.TestCase):
    def test_곱하기(self):
        c = mycalc.add(20, 10)
        self.assertEqual(c, 200)

    def test_제곱(self):
        c = mycalc.제곱(2)
        self.assertEqual(c, 4)

if __name__ == '__main__':
    unittest.main()
python -m test -v

다음 포스팅에는 Django의 Unittest를 진행 하도록 하겠습니다.

댓글