首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gomega返回500状态代码

Gomega返回500状态代码
EN

Stack Overflow用户
提问于 2016-05-20 14:54:43
回答 1查看 379关注 0票数 1

我已经用Ginkgo/Gomega在Go中编写了一些测试,但是无论我做什么,ghttp都会向我的客户端返回一个没有内容的500个状态。下面是一些示例代码:

代码语言:javascript
复制
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 变化量g

如果已注册的处理程序产生错误的断言,那么ghttp将返回500。 如果注册处理程序出现恐慌,那么ghttp将返回500并失败测试。

但是,我不能让这些测试失败,即使我发布到一个不同的路由,删除附加的处理程序调用等。任何建议都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2020-02-24 14:05:57

希望这次行动能解决这个问题,因为这场比赛太晚了。我也有过同样的问题,所以我和其他遇到过的人分享。

在我的例子中,我的It函数在上下文函数之外,但是在编译时不会收到任何错误。在嵌套的中描述,您需要这样的结构:

代码语言:javascript
复制
Describe
  Context
    BeforeEach
    It

注意BeforeEach和它包含在上下文中的位置。

希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37349932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档