[TIL] Unit testing

양희연·2020년 8월 18일
0

Django

목록 보기
12/14
post-thumbnail

💡 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
profile
꾸준히 나아가자!

0개의 댓글