[Python] assert

Cha Hwa Young·2024년 8월 14일
0

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 발생

profile
기회를 잡는 사람이 되도록!

0개의 댓글