Django 프로젝트에서 API의 안정성을 보장하려면 테스트 코드가 필수이다.
이 글에서는 Django의 TestCase를 활용하여 API 호출 테스트 코드 작성 방법을 설명한다.
✅ API 테스트 코드 작성 시 유의사항
✔ 테스트 파일 위치: django의 APP 디렉터리(test.py)에 작성
✔ 테스트 자동 탐색: test_로 시작하는 함수명을 사용해야 함
✔ 테스트 데이터 관리: 임시 데이터로 진행되며, 실제 데이터베이스에는 저장되지 않음
✅ test.py에서 API 테스트 코드 작성
test.py 파일을 생성하고 아래와 같이 코드를 작성한다.
from django.test import TestCase
from django.urls import reverse
class APIsTest(TestCase):
""" API 호출 테스트 """
def test_nanet_search(self):
""" 국회도서관 검색 API 테스트 """
# 테스트 파라미터
data = {
"search": "수호지",
"pageno": 1,
"displaylines": 10
}
# API URL
url = reverse('nanet-main')
# API 호출
response = self.client.get(url, data)
# 응답 코드 검증
self.assertEqual(response.status_code, 200, "응답 코드가 200이 아닙니다.")
📌 설명
✅ TestCase를 상속받아 테스트 클래스 생성
✅ reverse('nanet-main')으로 URL 설정
✅ self.client.get(url, data)로 API 호출
✅ assertEqual(response.status_code, 200)을 사용해 응답 코드 검증
✅ 테스트 실행하기
📍 1. 가상환경 활성화
터미널에서 Django 프로젝트의 가상환경을 활성화한다.
- 가상환경에 진입
- python3 manage.py test 로 테스트 실행
📍 2. 테스트 실행
아래 명령어를 입력하면 모든 테스트가 실행된다.
- python3 manage.py test
📌 실행 결과 예시
"""
테스트 실행
가상환경에 진입하고
명령어 python3 manage.py test 로 테스트 실행
"""
(pubd_api) pubdapi % ls
db.sqlite3 manage.py pubdapi pubdapp
(pubd_api) pubdapi % python3 manage.py test
Found 1 test(s).
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 0.172s
OK
Destroying test database for alias 'default'...
(pubd_api) pubdapi %
✅ 테스트가 정상적으로 통과됨을 확인할 수 있다! 🎉
✅ 특정 테스트 클래스만 실행하는 방법
특정 클래스만 테스트하고 싶다면, 앱명.tests.클래스명을 지정하여 실행한다.
- python3 manage.py test pubdapp.tests.APIsTest
📌 실행 결과 예시
"""
특정 클래스만 실행시키고 싶은 경우 (앱.tests.class명 지정)
예시코드 python3 manage.py test pubdapp.tests.APIsTest
"""
(pubd_api) pubdapi % python3 manage.py test pubdapp.tests.APIsTest
Found 1 test(s).
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 0.299s
OK
Destroying test database for alias 'default'...
(pubd_api) pubdapi %
✅ 특정 클래스의 테스트만 실행되었으며, 테스트가 정상적으로 통과되었다.
✅ 마무리
이제 Django의 국회도서관 자료검색 API 테스트 코드가 완성되었다.
Django 프로젝트의 테스트 자동화를 통해 더 안정적인 API 개발을 진행할 수 있다! 🚀
📌 다음 글 예고
다음 단계에서는 Vue.js에서 API를 호출하고, 데이터를 화면에 출력하는 페이지를 다뤄본다.
'국회도서관 자료검색 서비스' 카테고리의 다른 글
vue router, vuetify 설치하기 #13 (0) | 2024.08.14 |
---|---|
vue, vue cli 설치하고 버전 확인 #12 (0) | 2024.08.13 |
django rest framework swagger drf_yasg 설정 #10 (0) | 2024.08.09 |
django 공공데이터 포털 API 코드, 환경변수 설정, admin 생성하기 #9 (0) | 2024.08.08 |
django APP들을 위한 마이그레이션(migrate) 작업#8 (0) | 2024.08.07 |