unittest의 픽스처

Python 테스트 입문

Alexander Levin

Data Scientist

픽스처 요약

  • 픽스처
    • 테스트를 위한 준비된 환경
    • 준비를 테스트 코드와 분리
  • 픽스처 설정 - 테스트 리소스 준비
  • 픽스처 해제 - 할당된 리소스 정리
  • 비유: 소풍 준비와 끝나고 치우기
Python 테스트 입문

unittest 라이브러리의 픽스처

  • unittest의 픽스처 - 하나 이상의 테스트를 위한 준비
  • .setUp() - 실제 테스트 전에 픽스처 준비
  • .tearDown() - 테스트 후 환경 정리
1 https://docs.python.org/3/library/unittest.html
Python 테스트 입문

예시 코드

import unittest

class TestLi(unittest.TestCase):
    # Fixture setup method
    def setUp(self):
        self.li = [i for i in range(100)]

    # Fixture teardown method
    def tearDown(self):
        self.li.clear()

    # Test method
    def test_your_list(self):
        self.assertIn(99, self.li)
        self.assertNotIn(100, self.li)
Python 테스트 입문

U와 D는 대문자

  • 올바른 문법: setUp(U 대문자), tearDown(D 대문자)

    class TestLi(unittest.TestCase):
      # Fixture setup method
      def setUp(self):
          self.li = [i for i in range(100)]
    
      # Fixture teardown method
      def tearDown(self):
          self.li.clear()
    
Python 테스트 입문

예시 출력

명령어: python3 -m unittest test_in_list.py

.setUp().tearDown() 사용 시 실행 출력:

픽스처 사용 실행 결과

Python 테스트 입문

메서드 이름 오류

.set_up()로 실행한 출력:

잘못된 이름의 픽스처 실행 결과

Python 테스트 입문

요약

  • unittest의 픽스처: 하나 이상의 테스트를 위한 사전 준비
  • 픽스처 만들기:
    • .setUp() 구현
    • .tearDown() 구현
  • .setUp() - 실제 테스트 전 픽스처를 준비하는 메서드
  • .tearDown() - 테스트 후 환경을 정리하는 메서드
Python 테스트 입문

연습해 봅시다!

Python 테스트 입문

Preparing Video For Download...