Goのhttptestにおいてhandlerに値を渡したい
golangで下記のようなhttpのテストを書いているのですが、httptestにおいてhandlerにRESTのurl(/item/{item_id}
)に埋め込んだ値(item_id
)を渡すにはどうしたらいいですか?
テストコード
func TestHandler(t *testing.T) {
handler := func(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
itemID := vars["item_id"]
fmt.Println("itemID: ", itemID)
}
http.HandleFunc("/item/{item_id}", handler)
testserver := httptest.NewServer(http.HandlerFunc(handler))
defer testserver.Close()
req, err := http.NewRequest("PUT", testserver.URL, nil)
if err != nil {}
var client http.Client
client.Do(req)
}
コマンド
$ go test ./... -v
実行結果
=== RUN TestHandler
itemID:
--- PASS: TestHandler (0.00s)
例えば、この実行結果の部分でitemID
を出力させたいです。