💡 unit test
모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차를 말한다.
#add_num.py
def addNum(x, y):
return x + y
① unittest 모듈을 import 한다. 또한 테스트 할 함수도 import 한다.
import unittest
from add_num import addNum
② unittest.TestCase
클래스를 상속하는 테스트 클래스를 만든다.
import unittest
class AddNumTest(unittest.TestCase):
③ 테스트 클래스 안에 test_
로 시작하는 테스트 메서드를 생성한다.
import unittest
class AddNumTest(unittest.TestCase):
def test_add_num(self):
④ 테스트 메서드에서는 일반적으로 테스트하고자 하는 함수나 메서드를 호출하고 그 결과값을 self.assert*()
메서드를 사용하여 확인한다.
import unittest
class AddNumTest(unittest.TestCase):
def test_add(self):
result = addNum(10, 20)
self.assertEqual(result, 30)
⑤ 테스트 클래스가 완성됐으면, unittest.main()
을 호출하여 테스트를 실행시킨다.
import unittest
class AddNumTest(unittest.TestCase):
def test_add(self):
result = addNum(10, 20)
self.assertEqual(result, 30)
unittest.main()
django에서 unit testing을 진행하려면, 각 앱에 있는 tests.py 파일에 작성해주면 된다.
#just/views.py
import json
from django.views import View
from django.http import JsonResponse
class JustView(View):
def get(self, request):
return JsonResponse({'message':'Just Do Python'}, status = 200)
#just/tests.py
from django.test import (
TestCase,
Client
)
client = Client()
class JustTest(TestCase):
def test_just_get_view(self):
response = client.get('/just') #:8000 뒤에 경로
self.assertEqual(response.status_code, 200)
self.assertEqual(response.json(), {
"message": "Just Do Python"
})
그 후 테스트를 실행하려면 아래 명령어를 입력해주면 된다.
(project) $ ./manage.py test just