В моих тестах обработчика я использую шаблон обслуживания тестового запроса с токеном аутентификации в заголовке большое количество раз. Чтобы абстрагировать это и сэкономить большое количество строк, я написал следующую функцию:
func serveTestReq(payload string, route string, method string, handlerfunc func(w http.ResponseWriter, r *http.Request), token string) {
body := strings.NewReader(payload)
req, err := http.NewRequest(method, route, body)
Expect(err).NotTo(HaveOccurred())
req.Header.Add("Content", "application/json")
req.Header.Add("Authorization", "Bearer "+token)
handler := authMiddleware(handlerfunc)
rr := httptest.NewRecorder()
handler.ServeHTTP(rr, req)
}
Однако, если я вызываю эту функцию дважды (например, для проверки идемпотента POST
с), запрос, похоже, будет обработан только один раз. Что-то не так с вышеуказанной функцией?