UnitTest, TDD

개발을 하는 과정에서 코드를 간결하고 깔끔하게 작성하는 것 만큼 중요한 작업이 하나 있다.

바로 내가 작성한 코드를 테스트하는 것이다. 실제 개발 환경에서는 계속해서 코드가 수정되고

이에 따라 예상 값과 실제 값이 다르게 나올 수 있기 때문에 테스트하는 습관을 들이는 것이 좋다.

그저 단순히 print해서 결과 값을 확인한다면 간편하긴 하지만 그 경우가 많아질 경우 시간이 많이 걸릴 것이다.

이때 이러한 과정을 하나의 클래스를 통해 True/False를 알 수 있다면 훨씬 편할 것이다.

여러 테스트 케이스를 작성함으로써 코드를 테스트하는 과정을 유닛 테스트(Unit Test)라고 한다.

 

import unittest

def double(a):
  return a * 2

class TestDouble(unittest.TestCase):
  # 기대값이 실제값과 일치한가?
  # expected == actual
  def test_if_double_positive(self):
    self.assertEqual(double(2), 4)
    self.assertEqual(double(1), 2)
    
  def test_if_zero_double(self):
    self.assertEqual(double(0), 0)
    
  def test_if_double_negative(self):
    self.assertEqual(double(-2), -4)

※ unittest는 파이썬에 내장되어 있는 모듈로, test에 쓰이는 클래스와 메서드의 이름은 고정되어 있지 않다.

다만, 어떠한 경우를 테스트하는 것인지에 대해 명시하는 정도로 작성하면 좋다.

  • 코드를 Run 한 후에 unittest.main()이라는 명령어를 입력한다.

etc-image-0etc-image-1
테스트 성공(좌), 테스트 실패(우)

TDD(Test Driven Development)를 사용한다면?

-> 테스트 코드를 먼저 작성한 후, 그에 맞게 코드를 작성(개발)하는 방법

 

etc-image-2etc-image-3
1. 테스트 코드를 작성(좌) 2. 테스트 코드를 통과하도록 코드를 작성(우)

'Python > 패스트캠퍼스(테크보이 워니)' 카테고리의 다른 글

JSON 과 XML  (0) 2022.04.10
파이썬 API - 부동산 실거래  (0) 2022.04.10
파이썬 API 사용  (0) 2022.04.10
파이썬 모듈/패키지  (0) 2022.04.07
파이썬 상속(클래스, 오브젝트)  (0) 2022.04.04