httptest를 사용하여 Go에서 HTTP 호출을 테스트하는 방법
소개
Go에서 HTTP 테스트 httptest 패키지를 사용하면 쉽게 할 수 있습니다. 이 문서에서는 서버 테스트의 자세한 예를 포함하여 응답 및 서버 테스트에 httptest를 활용하는 방법을 살펴봅니다.
테스트 유형
httptest는 두 가지 테스트 범주를 제공합니다.
응답 테스트
응답 테스트에서 Recorder 객체는 응답과 해당 내용을 캡처합니다. 다음 코드 조각은 응답 테스트를 보여줍니다.
resp := httptest.NewRecorder() req, _ := http.NewRequest("GET", "/3D/header/?", nil) http.DefaultServeMux.ServeHTTP(resp, req)
서버 테스트
서버 테스트의 경우 httptest는 서버를 시뮬레이션하고 사용할 수 있는 URL을 제공합니다.
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, `{"fake twitter json string"}`) }))
이 예제에서는 미리 정의된 JSON 데이터로 응답하는 서버가 생성됩니다. 그런 다음 이 서버의 URL을 테스트 중인 애플리케이션에서 사용할 수 있습니다.
예:retrieveTweets에서 HTTP 호출 테스트
retrieveTweets 기능을 테스트하려면:
func TestIt(t *testing.T){ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, `{"fake twitter json string"}`) })) defer ts.Close() twitterUrl = ts.URL c := make(chan *twitterResult) go retrieveTweets(c) tweet := <-c if tweet != expected1 { t.Fail() } tweet = <-c if tweet != expected2 { t.Fail() } }
서버를 모의하여retrieveTweets에서 받은 결과를 확인할 수 있습니다. 기능입니다.
위 내용은 `httptest`를 사용하여 Go에서 HTTP 호출을 효과적으로 테스트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!