Я использую appengine и golang для разработки простых API RESTful. Код работает нормально, когда я запускаю службу с помощью goapp-сервиса, и начал писать тестовые функции модуля для тестирования конечных точек API, и здесь меня поразила паническая ошибка appengine: NewContext passed an unknown http.Request
. Я получаю эту ошибку, когда я запускаю goapp test
.golang appengine api test error "appengine: NewContext прошел неизвестный http.Request"
Похоже на какой-то причине, я не в состоянии передать запрос, который я создал и передать его appengine.NewContext()
Ниже приведен фрагмент кода ..
body := strings.NewReader("")
request, err := http.NewRequest("GET", "endpoint url", body) //inst.NewRequest("GET", goalUrl, body) //
if err != nil {
t.Error(err)
}
t.Log(request)
c := appengine.NewContext(request) // ERROR: appengine: NewContext passed an unknown http.Request
У меня есть создал simple reproducible code. ты можешь помочь мне с этим? или Кто-нибудь имеет свой проект API golang на appengine и имеет функции тестирования модулей для тестирования конечных точек, я хотел бы взглянуть на их код ...
Вот, который я опубликовал, в котором есть все необходимые сведения о проблеме вместе с примерами и подробным сообщением об ошибке. Спасибо за вашу помощь.
спасибо, но я вижу примечание в документе, в котором говорится: «Он должен использоваться только пакетом aetest». Я считаю, что это не риск. Есть ли другое решение? – srini
Зачем вам нужно сначала называть 'NewContext'? Возможно, лучший подход состоял бы в том, чтобы полностью отделить приложения от определенных частей логики и сделать проверяемую логику приложения независимой от специфического состояния appengine? – nothingmuch
Контекст необходим для операций с хранилищем appengine, таких как put, get, поэтому это необходимо в моем случае. – srini