我使用 Ginkgo/Gomega 在 Go 中编写了一些测试,但无论我做什么,ghttp
都会向我的客户返回 500 状态,没有内容。这是一些示例代码:
var _ = Describe("Client", func() {
var (
server *ghttp.Server
)
BeforeEach(func() {
server = ghttp.NewServer()
server.AllowUnhandledRequests = false
server.Writer = GinkgoWriter
})
AfterEach(func() {
server.Close()
})
Describe("fetching a node list", func() {
BeforeEach(func() {
server.AppendHandlers(
ghttp.CombineHandlers(
ghttp.VerifyRequest("GET", "/nodes"),
ghttp.RespondWith(204, ""),
),
)
})
It("should be able to fetch a node list", func() {
response, err := myclient.Get(NODES)
Ω(err).ShouldNot(HaveOccurred())
Ω(response).ShouldNot(BeNil(), "No response was returned from nodes.")
data, err := httputil.DumpResponse(response, true)
Ω(err).ShouldNot(HaveOccurred())
GinkgoWriter.Write(data)
Ω(response.StatusCode).Should(Equal(204))
})
})
})
根据 Gomega 变更日志:
如果已注册的处理程序做出失败的断言,ghttp 将返回 500。
如果注册的处理程序发生恐慌,ghttp 将返回 500 并且测试失败。
但是,即使我发布到不同的路线,删除附加处理程序调用等,我也不能让这些测试失败。任何建议都将不胜感激!