[python] FastAPI에서 유닛 테스트 작성하기

FastAPI는 빠른 개발 속도와 높은 성능을 제공하는 Python 웹 프레임워크입니다. 이 프레임워크에서 유닛 테스트는 애플리케이션의 안정성을 확인하고 코드 변경에 따른 부작용을 최소화하는 데 중요한 역할을 합니다.

이 글에서는 FastAPI 애플리케이션에서 유닛 테스트를 작성하는 방법을 알아보겠습니다.

1. 테스트 라이브러리 선택하기

FastAPI 애플리케이션에서 유닛 테스트를 작성하기 위해선 테스트 라이브러리를 선택해야 합니다. Python에서 가장 인기 있는 테스트 라이브러리 중 하나는 pytest입니다. pytest는 간단하면서도 강력한 기능을 제공하며, FastAPI와 잘 호환됩니다.

프로젝트의 requirements.txt 파일에 다음과 같이 pytest를 추가합니다:

pytest==6.2.4

2. 테스트 코드 작성하기

FastAPI 애플리케이션의 테스트 코드는 일반적으로 tests 디렉토리에 위치합니다. 여기에는 각각의 엔드포인트를 테스트하는 파일이 포함될 수 있습니다.

아래는 간단한 FastAPI 애플리케이션에서 유닛 테스트를 작성하는 예시입니다:

from fastapi.testclient import TestClient

from app.main import app

client = TestClient(app)


def test_read_item():
    response = client.get("/items/1")
    assert response.status_code == 200
    assert response.json() == {"item_id": 1, "item_name": "Item 1"}

위 코드에서 TestClient는 FastAPI 애플리케이션을 테스트하기 위한 클라이언트 객체를 생성합니다. test_read_item 함수는 /items/1 엔드포인트에 대한 GET 요청을 보내고, 응답의 상태 코드와 내용을 확인하는 간단한 테스트를 수행합니다.

3. 테스트 실행하기

pytest를 사용하여 작성한 테스트를 실행할 수 있습니다. 프로젝트 루트 디렉토리에서 다음 명령을 실행합니다:

pytest

pytesttests 디렉토리에 있는 모든 테스트 파일을 자동으로 찾아 실행합니다. 결과를 통해 각 테스트가 성공적으로 통과되었는지 확인할 수 있습니다.

마무리

FastAPI에서 유닛 테스트를 작성하는 것은 애플리케이션의 안정성과 품질을 높이는 데 도움이 됩니다. 이 글에서는 pytest를 사용하여 간단한 FastAPI 애플리케이션의 테스트를 작성하는 방법을 알아보았습니다. 테스트를 작성하여 코드 변경에 따른 부작용을 사전에 방지하고 더욱 견고한 애플리케이션을 개발하는 데 도움이 되기를 바랍니다.


참고: