Попытка протестировать функцию веб-сборки, которая запускает POST-запрос.
Получите следующую ошибку:
firePing_test.go:40: ERROR ON POST REQUEST: Post https://not-the-real-api.execute-api.us-east-1.amazonaws.com/testing: dial tcp: Protocol not available
Продолжительность:
Ubuntu 18.04.2 LTS
go версия go1.12.2 linux / amd64
Я проверил, что функция действительна и отправит запрос при выполнении в Chrome.
Тест также проходит при компиляции для linux / amd64.
Функция задачи:
// FirePing fires a ping
func FirePing(protocol *string, domain *string, params *map[string]string) (*http.Response, error) {
// Marshal map into POST request body
reqBody, err := json.Marshal(*params)
if err != nil {
return nil, fmt.Errorf("ERROR ON MARSHAL OF PARAMS: %v", err)
}
// Send POST request
req, err := http.NewRequest("POST", *protocol + "://" + *domain, bytes.NewBuffer(reqBody))
if err != nil {
return nil, fmt.Errorf("ERROR ON FORMING REQUEST: %v", err)
}
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil,fmt.Errorf("ERROR ON POST REQUEST: %v",err)
}
return resp, nil
}
Вызов функции проверки задачи:
// FirePing and receive response
resp, err := FirePing(&config.Config.Protocol, &config.Config.Domain, &m)
if err != nil {
t.Error(err)
return
}
Должен пройти этот тестовый пример, так как он прекрасно выполняет вызов функции в браузере.
Единственное другое место, где я видел это:
http.Get возвращает протокол недоступен ошибка
Какие швы должны быть с детской площадки, отключая соединения TCP. Я запускаю этот тест локально