質問
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
を出力させたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。