2017-01-01 4 views
0

вот мой тест с использованием тестирования пакета и эхо рамки веб Http: (переменная веб-сервер является глобальным эхо экземпляра)Присвоение записи в нулевой карте при использовании заголовка HTTP с Echo golang

func TestRunFunction(t *testing.T){ 
    req := new(http.Request) 
    **req.Header.Set("Authorization","Bearer "+loginToken.Token)** 
    rec := httptest.NewRecorder() 
    c := WebServer.NewContext(standard.NewRequest(req, WebServer.Logger()), standard.NewResponse(rec, WebServer.Logger())) 
    c.SetPath(path) 
    if assert.NoError(t , RunFunction(c)){ 
     assert.Equal(t,http.StatusOK, rec.Code) 
    } 
} 

Im пытается проверить некоторая функция, которая вызывается REST GET метод, но я получаю эту ошибку паники:

panic: assignment to entry in nil map [recovered] 
     panic: assignment to entry in nil map 

паника на линии жирным (Astrix в коде), когда Im пытается установить заголовок. Что я делаю не так ?

Благодаря

ответ

3

Ошибка Спроецировать req.Header равна нулю; вы не можете назначить карту nil.

Раствор либо:

  1. Initialize req.Header с новым экземпляром net/http.Header

    req.Header = make(http.Header) 
    
  2. Или создайте req переменную net/http.NewRequest, которая делает всю внутреннюю инициализацию для вас :

    req, err := http.NewRequest("GET", "https://example.com/path", nil) 
    if err != nil { 
        panic(err) 
    } 
    req.Header.Set("Authorization","Bearer "+loginToken.Token)