Backend/Flask 개발일지

20. miniter API Unit test 2

Fullstacknology 2022. 2. 9. 00:47

● ping 엔드포인트 테스트 코드 작성

 

def test_ping(api):                    # 1
    resp = api.get('/ping')            # 2
    assert b'pong' in resp.data        # 3

 

# 1. ping 엔드포인트를 테스트하는 함수, 여기서 api는 위의 코드인 def api 함수의 리턴값인 test clinet를 자동으로 적용시켜준다.
 
 
# 2. test clinet의 get 메소드를 통해서 가상의 GET 요청을 /ping URL 와 연결되어있는 엔드포인트에 보낸다.
 
 
# 3. 위의 2를 실행 후 리턴받은 응답의 body에 "pong" 이라는 텍스트가 포함되어 있는지 확인한다.
"pong" 앞에 붙어있는 b 는 해당 스트링을 byte로 변환시켜 주는 역할을 한다. resp.data가 스트링이 아닌 byte 이므로 byte로 변환해서 비교하는 것이다.

 

그 후 ubuntu 터미널에서 pytest 명령어를 입력하여 테스트를 한다. 

 

성공!

 

이렇게 test client를 통해 가상의 HTTP 요청을 전송해 엔드포인트를 호출한 후 테스트 하는 방식이다. 다음으로 tweet 엔드포인트를 테스트 한다.