[python] FastAPI에서 통합 테스트 작성하기

FastAPI는 빠르고 현대적인 웹 프레임워크로써, 통합 테스트를 작성하는 것이 매우 간단합니다. 통합 테스트는 애플리케이션의 여러 컴포넌트와 연동되는지 확인하는 작업이며, FastAPI에서는 TestClient를 사용하여 통합 테스트를 작성할 수 있습니다.

테스트 환경 설정하기

먼저, 테스트 환경을 설정해야 합니다. pytest를 사용하여 테스트를 작성하므로, pytest를 설치해야 합니다.

pip install pytest

FastAPI 애플리케이션에 대한 기본적인 테스트 환경을 설정하려면 다음 파일과 디렉토리 구조를 생성하십시오.

app/
├── main.py
tests/
└── test_main.py

main.py 파일에는 FastAPI 애플리케이션의 코드가 들어갑니다. test_main.py 파일에는 통합 테스트를 작성할 코드가 들어갑니다.

통합 테스트 작성하기

test_main.py 파일에서 다음과 같이 통합 테스트를 작성할 수 있습니다.

from fastapi.testclient import TestClient

from app.main import app

client = TestClient(app)

def test_read_main():
    response = client.get("/")
    assert response.status_code == 200
    assert response.json() == {"message": "Hello World"}

위의 코드에서는 TestClient를 사용하여 FastAPI 애플리케이션을 테스트할 수 있습니다. get() 메서드를 사용하여 / 엔드포인트에 GET 요청을 보내고, 반환된 응답을 검증합니다.

테스트 실행하기

다음 명령어를 실행하여 테스트를 실행할 수 있습니다.

pytest

위의 명령을 실행하면 test_main.py 파일에 작성된 통합 테스트가 실행되고, 결과가 터미널에 표시됩니다. 테스트가 성공적으로 통과되면 제대로 작성된 것입니다.

결론

FastAPI에서는 TestClient를 사용하여 신속하고 쉽게 통합 테스트를 작성할 수 있습니다. 이를 통해 애플리케이션의 여러 컴포넌트가 제대로 작동하는지 확인할 수 있습니다. 테스트 환경을 설정하고 테스트를 작성하는 것은 좋은 소프트웨어 개발의 핵심 부분이므로, FastAPI에서의 통합 테스트 작성을 잘 익혀두시기 바랍니다.

참고 자료