tdd에 익숙해지기 위해(이유는 이 글에서는 서술하지 않겠음..)
FastAPI - pytest로 테스트 코드를 작성하던 중
assert를 글감으로 정해 보았다!
프로그램을 만들다 보면 수없이 많은 예외 상황이 발생하는데, 프로그램의 처리를 중단하고 다른 처리를 하는 것을 예외 처리라고 한다.
python에서는try-except 문으로 예외 처리를 하기도 한다.
한편, raise, assert를 사용하여 예외를 발생시키기도 한다.
assert는 가정 설정문이라고도 하는데,
지정된 조건식이 거짓일 때 AssertionError 예외를 발생시키며 조건식이 참이면 넘어간다.
def test_msg():
response = client.get("/")
assert response.status_code == 200
assert response.json() == {"msg": "Ok"}
위 테스트 코드를 보면 루트 경로에서의 GET 요청의 결과를 response라는 변수에 저장할 때,
그 상태 코드가 200이면 넘어가고,
response.json()이 {"msg":"Ok"}와 같으면 넘어간다.
즉, 상태 코드가 200이 아니거나, 응답 JSON이 예상과 다를 경우에는AssertionError가 발생하는 것이다.
다른 테스트 코드를 작성해 보았다.
테스트할 인자 값이 숫자값인지 아닌지 검사할 수 있다.
def test_num():
input_value = "123"
assert isinstance(input_value, (int, float))

문자열 "123" 값을 넣는다면, 이렇게 붉은 빛으로 물든 터미널을 볼 수 있다!
assert 뒤의 조건 거짓 ➡️ AssertionError 발생