1. 유닛테스트
python에서는 unittest(Unit testing framework) 모듈을 사용할 수 있다.
유닛테스트 코드를 작성하기 위해서는 다음과 같은 절차를 따른다.
1. import unittest
2. unittest.TestCase로 부터 파생된 사용자 테스트 클래스를 만든다.
3. 테스트 클래스 안에 "test"로 시작하는 테스트 메서드를 생성한다.
테스트 메서드에서는 일반적으로 테스트하고자 하는 함수나 메서드를 호출하고
그 결과값을 self.assert*() 메서드를 사용하여 확인한다.(assertEqual, assertTure, assertFalse, assertRaises, assertReget 등)
4. 테스트 클래스가 완성되면, unittest.main()을 호출하여 테스트를 실행
밑에는 유닛 테스트의 예시이다.
#myCalc.py
def add(a, b):
return a + b
def substract(a, b):
return a - b
test.py 코드는 unittest.TestCase로 부터 파생된 MyCalcTest 클래스로 작성, test_add와 test_substract 테스트 메서드를 작성하였고, 그 안에서 myCalc함수를 실행한 결과 self.assertEqual()를 사용하여 검사, 마지막으로 unittest.main()이 실행되면, 테스트 메서들이 실행하게 된다.
#test.py
import unittest
import myCalc
class MyCalcTest(unittest.TestCase):
def test_add(self):
c = myCalc.add(20, 10)
self.assertEqual(c, 30)
def test_substract(self):
c = myCalc.substract(20, 10)
self.assertEqual(c, 10)
if __name__ == '__main__':
unittest.main()
, 파이썬의 unittest는 전체 스크립트 단위, 테스트 클래스 단위, 메서드/함수 단위로 실행할 수 있다.
2. Test Fixture
테스트 전에 테스를 위한 사전 준비 작업을 필요할 때 쓴다. 또한, 테스트가 끝난 후 Clean up을 해야하는 경우에 쓴다. unittest는 이렇게 사전 준비 작업을 위해 setUp() 이라는 메서드를, 사후 Clean up 처리를 위해 tearDown()이라는 메서드를 사용할 수 있다.
테스트 메서드가 실행되기 전과 후에 매번 실행된다.
#myUtil.py
import os
def filelen(filename):
f = open(filename, "r")
f.seek(0, os.SEEK_END)
return f.tell()
def count_in_file(filename, char_to_find):
count = 0
f = open(filename, "r")
for word in f:
for char in word:
if char == char_to_find:
count += 1
return count
아래 코드는 test_filelen(), test_count_in_file() 두 개의 메서드를 가지고 있다. 테스트 메서드가 실행되기 전에 setUP() 메서드가 실행되어 테스트 파일을 생성, 테스트 실행 후 testDown()메서드가 실행하여 사용한 테스트 파일을 지우게 된다.
이상포스터를 마치겠습니다.
'파이썬' 카테고리의 다른 글
아나콘다(Anaconda) 설치법 (0) | 2020.04.01 |
---|---|
웹 스크래핑 및 머신러닝 딥러닝 개념 (0) | 2020.04.01 |
파이썬 Subprocess Connection Error 오류 (0) | 2020.03.31 |
쇼핑몰 크롤링 하기 - 2탄 ++ 수정사항있음 (0) | 2020.03.27 |
파이썬 403 Forbidden 에러 (크롤링) (0) | 2020.03.27 |