这是我使用测试包和echo web http framework进行的测试:(webserver变量是全局echo实例)
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)
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试测试REST GET方法调用的某些功能,但出现此紧急错误:
panic: assignment to entry in nil map [recovered]
panic: assignment to entry in nil map
Run Code Online (Sandbox Code Playgroud)
当我试图设置标题时,恐慌就以粗体显示(代码中的星号)。我究竟做错了什么?
错误是不言自明的:req.Headernil; 您不能分配给零贴图。
解决方案是:
req.Header用的新实例初始化net/http.Header
req.Header = make(http.Header)
Run Code Online (Sandbox Code Playgroud)或者,使用创建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)
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1105 次 |
| 最近记录: |