Unit Test 란?
Unit test란 내가 작성한 코드의 가장 작은 단위
인 함수를 테스트 하는 메소드이다.
작성한 로직을 테스트하는 유닛테스트 코드를 작성하여 테스트 하게 된다.
TestCase : Unit Test 프레임 워크의 테스트 조직 기본 단위
Fixture : 테스트 진행 시 필요한 데이터 혹은 설정을 의미
assertion : Unit Test시 검증이 제대로 되었는지 확인 하는 부분
테스트 방법
시스템을 테스트 할때 크게 3가지 방법으로 나눌 수 있습니다.
UI Testing / End-To-End Testing
Integration Testing
Unit Testing
이중 UI Testing이 가장 어렵고 까다롭습니다.
Manual Testing은 실행하기 쉽다는 장점이 있지만 비용이 많이 들고 부정확 하며 실행 시간이 오래 걸립니다.
자동화 할 수 있지만 UI Testing은 자동화 하기가 가장 까다랍고 또 실행하기도 까다롭습니다.
Integration Testing이 그 다음으로 공수가 많이 듭니다.
Unit Testing이 가장 쉬우며 가장 효과가 좋습니다.
cf) UI Testing은 10%, Integrating Testing은 20%, 그리고 Unit Testing을 70% 전체 테스트 coverage를 구현 하는것이 권장
실제 적용
해당 Unit Test는 MongoDB CRUD 프로젝트에 적용되었습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
from django.test import TestCase import unittest
import requests
import json
from time import sleep
class UnitTestCase(unittest.TestCase):
def test_01_addPost(self): print("============test_addPost================") url = "http://127.0.0.1:8000/add_post/"
data = { "post_title" : "First Post", "post_description" : "Test TDD", "comment" : "commnet2, commnet3", "tags" : "1,2", "user_details" : { "first_name" : "KIM", "last_name" : "hyunsoo"} }
response = requests.post(url, json= data).json() global id id = response['id'] print("response: ") print(response)
def test_02_readPost(self): print("============test_readPost================")
url = "http://127.0.0.1:8000/read_post/" + str(id) response = requests.get(url).json()
print("response: ") print(response)
def test_03_updatePost(self):
print("============test_updatePost================")
url = "http://127.0.0.1:8000/update_post/" + str(id) data = { "post_title" : "First Post_Update", "post_description" : "Test TDD_Update", "comment" : "commnet2, commnet3" , "tags" : "1,2" , "user_details" : { "first_name" : "LEE", "last_name" : "hyunsoo"} } response = requests.post(url, json=data).json()
print("response: ") print(response)
def test_04_deletePost(self):
print("============test_deletePost================") url = "http://127.0.0.1:8000/delete_post/" + str(id)
response = requests.get(url).json()
print("response: ") print(response)
|