这就是我的控制器的样子
func TestGet(t *testing.T) {
Convey("valid request case", t, func() {
w := httptest.NewRecorder()
uri := "/path?key=value"
r, _ := http.NewRequest("GET", uri, nil)
beego.BeeApp.Handlers.ServeHTTP(w, r)
So(w.Code, ShouldEqual, 200)
})
}
现在,如果我向相应的端点发出请求,例如" http://localhost:8081/path?key=value",我会得到uri的正确值
但如果我用以下代码测试它
<?xml version="1.0" encoding="utf-8"?>
<OrleansConfiguration xmlns="urn:orleans">
<Globals>
<SeedNode Address="localhost" Port="10000" />
</Globals>
<Defaults>
<Startup Type="Grains.Startup, Grains" /><!--important-->
<Networking Address="localhost" Port="10000" />
<ProxyingGateway Address="localhost" Port="30000" />
</Defaults>
</OrleansConfiguration>
控制器中的uri为空字符串
但是, o.Ctx.Request.URL.Path 具有正确的值,即&#39; / path&#39;
答案 0 :(得分:0)
根据文档https://golang.org/pkg/net/http/#NewRequest
NewRequest返回适用于Client.Do或Transport.RoundTrip的请求。要创建用于测试服务器处理程序的请求,请使用ReadRequest或手动更新“请求”字段。
对于golang 1.7,应使用以下方法创建测试https://golang.org/pkg/net/http/httptest/#NewRequest
的请求NewRequest返回一个新的传入服务器请求,适合传递给http.Handler进行测试。