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 엔드포인트를 테스트 한다.