테스트 클라이언트와 픽스처
테스트를 위한 앱과 클라이언트를 실행합니다.
테스트 클라이언트와 픽스처은(는) CoddyKit의 무료 Flask Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Flask Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Flask Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
Flask 앱을 테스트하는 이유
pytest를 사용하면 모든 경로가 여전히 작동하는지 몇 초 만에 확인할 수 있으므로, 앱을 직접 클릭해 보지 않아도 안심하고 코드를 변경할 수 있습니다. 🧪
테스트 클라이언트 알아보기
Flask에는 테스트 클라이언트라는 가짜 브라우저가 포함되어 있습니다. 실제 서버나 네트워크 없이 메모리에서 앱의 경로를 호출합니다.
client = app.test_client()
resp = client.get('/')앱에서 클라이언트 가져오기
app.test_client()를 호출하여 클라이언트를 만듭니다. 그러면 get이나 post 같은 실제 HTTP 동사를 흉내 내는 메서드를 가진 객체가 반환됩니다.
from app import app
client = app.test_client()요청을 보내고 응답 받기
client.get('/') 을 호출하면 응답 객체가 반환됩니다. 실제 응답과 같은 방식으로 확인할 수 있지만 모든 작업이 Python 내부에서 즉시 실행됩니다.
resp = client.get('/')
print(resp.status_code)픽스처란 무엇인가요
픽스처는 테스트 전에 pytest가 실행하는 재사용 가능한 설정 코드입니다. 어디서나 클라이언트를 다시 만들지 않고 한 번 정의하여 재사용할 수 있습니다.
클라이언트 픽스처 작성하기
함수에 @pytest.fixture를 적용하고 테스트 클라이언트를 yield합니다. 이름을 인수로 지정한 테스트는 새 클라이언트를 받습니다.
@pytest.fixture
def client():
yield app.test_client()이름으로 픽스처 요청하기
픽스처를 사용하려면 이름을 테스트 인수로 추가하기만 하면 됩니다. Pytest가 일치하는 이름을 찾아 값을 자동으로 주입합니다.
def test_home(client):
resp = client.get('/')
assert resp.status_code == 200픽스처에서 yield와 return 비교
yield를 사용하면 테스트가 끝난 뒤 정리 작업을 실행할 수 있습니다. yield 전의 코드는 설정이고, yield 후의 코드는 모든 것을 정리합니다.
@pytest.fixture
def client():
yield app.test_client()
print('cleanup here')픽스처를 둘 위치
공유 픽스처는 conftest.py라는 파일에 넣습니다. Pytest가 자동으로 찾으므로 모든 테스트 파일에서 import 없이 해당 픽스처를 사용할 수 있습니다.
테스트 파일 이름 지정하기
Pytest는 이름이 test_로 시작하는 파일과 같은 방식으로 이름이 지정된 함수를 찾습니다. 이 규칙을 따르면 한 명령으로 테스트를 실행할 수 있습니다.
# file: test_routes.py
def test_home(client):
...전체 테스트 모음 실행하기
프로젝트 루트에서 터미널에 pytest만 실행하십시오. 모든 테스트 파일을 수집하고 실행한 뒤 성공 또는 실패 요약을 깔끔하게 출력합니다.
$ pytest
2 passed in 0.04s빠른 확인
재사용 가능한 테스트 클라이언트가 필요합니다. 어떻게 만들까요?
요약: 클라이언트와 픽스처
메모리 내 테스트 클라이언트를 사용해 보고 conftest.py의 픽스처로 공유하는 방법을 배웠습니다. 이제 모든 테스트가 준비된 클라이언트로 시작합니다. 🎉
AI 튜터와 함께 Python을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 30
- 레슨
- 120
자주 묻는 질문
“테스트 클라이언트와 픽스처” 강의는 무료인가요?
네 — “테스트 클라이언트와 픽스처” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Flask Academy 강의 전체를 잠금 해제할 수 있습니다. Flask Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“테스트 클라이언트와 픽스처”에서 뭘 배우나요?
테스트를 위한 앱과 클라이언트를 실행합니다. 브라우저에서 직접 실행하는 실습 코드로 Flask Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Flask Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Flask Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“테스트 클라이언트와 픽스처” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Flask Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Flask Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 테스트 클라이언트와 픽스처
- 경로와 JSON 검증하기
- 테스트 데이터베이스로 테스트 격리하기
- 인증된 엔드포인트 테스트하기