Go 언어 net/http/httptest 알아보기
오늘은 Go 언어 기본 패키지에 포함되있는 net/http/httptest로 서버를 테스트하는 실습을 해보려 합니다.
package main
import (
"fmt"
"io"
"io/ioutil"
"net/http"
"net/http/httptest"
)
서버를 구성하기 위해 io와 httptest 패키지를 가져오고, 출력을 위해 fmt 패키지도 가져옵니다.
func main() {
handler := func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "<html><body>Hello World!</body></html>")
}
버퍼의 끝에 문자열을 기록하기 위해 io 패키지를 가져왔으므로 사용해주고, 핸들러를 구현해줍니다.
request := httptest.NewRequest("GET","http://example.com", nil)
responseRecorder := httptest.NewRecorder()
handler(responseRecorder, request)
핸들러에 전달될 서버의 요청과 ResponseRecorder를 생성해줍니다.
response := responseRecorder.Result()
bodyByte, _ := ioutil.ReadAll(response.Body)
fmt.Println(response.StatusCode)
fmt.Println(http.StatusText(response.StatusCode))
fmt.Println(string(bodyByte))
}
서버의 상태 코드와 페이지의 html 소스를 확인할 수 있습니다.
Written on October 27, 2018