■ @fixture 데코레이터를 사용하는 방법을 보여준다.
※ 픽스처는 재사용할 수 있는 함수로, 테스트 함수에 필요한 데이터를 반환하기 위해 정의된다.
※ 픽스처 데코레이터는 인자를 선택적으로 받을 수 있다. 예를 들어 scope 인자는 픽스처 함수의 유효 범위를 지정할 때 사용한다.
• session : 테스트 전체 세션 동안 해당 함수가 유효하다.
• module : 테스트 파일이 실행된 후 특정 함수에서만 유효하다.
▶ model/event_update.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
from typing import Optional, List from pydantic import BaseModel class EventUpdate(BaseModel): title : Optional[str] image : Optional[str] description : Optional[str] tagList : Optional[List[str]] location : Optional[str] class Config: json_schema_extra = { "example" : { "title" : "FastAPI BookLaunch", "image" : "https://linktomyimage.com/image.png", "description" : "We will be discussing the contents of the FastAPI book in this event.Ensure to come with your own copy to win gifts!", "tagList" : ["python", "fastapi", "book", "launch"], "location" : "Google Meet" } } |
▶ test/test_event_update.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import pytest from model.event_update import EventUpdate @pytest.fixture(scope = "module") def eventUpdate() -> EventUpdate: return EventUpdate( title = "FastAPI Book Launch", image = "https://packt.com/fastapi.png", descripton = "We will be discussed the contents of the FastAPI book in this event. Ensure to come with your own copy to win gifts!", tagList = ["python", "fastapi", "book", "launch"], location = "Google Meet" ) def testeventUpdateTitle(eventUpdate : EventUpdate) -> None: assert eventUpdate.title == "FastAPI Book Launch" |
▶ 단위 테스트 실행 명령
1 2 3 |
pytest test_event_update.py |
※ test_event_update.py : 단위 테스트 파일명