登录
首页 >  Golang >  Go问答

以编程方式在Gin上下文中设置URL参数以进行测试

来源:stackoverflow

时间:2024-03-21 18:12:33 283浏览 收藏

在测试 Gin 中间件时,可以使用编程方式设置 URL 参数。通过修改 gin 上下文的原始参数数组,可以模拟请求中的 URL 参数。该方法仅适用于测试目的,无需运行完整的路由器引擎。具体操作步骤如下:

问题内容

我正在为 gin 中间件编写一些测试套件。我找到了一个解决方案来测试它们,而无需运行完整的路由器引擎,通过创建如下所示的杜松子酒上下文:

w := httptest.newrecorder()
c, _ := gin.createtestcontext(w)

目标是通过调用来测试我的函数:

MyMiddleware(c)

// Then I use c.MustGet() to check if every expected parameter has been transmitted to gin
// context, with correct values.

我的中间件之一依赖于 c.param()。在调用中间件之前,是否可以以编程方式在 gin 中设置 url 参数(类似于 c.setparam(key, value))?这仅用于测试目的,因此我不介意非优化的解决方案。


解决方案


最后通过使用 intellij 检查结构弄清楚了,我可以直接设置它的原始方式:

c.params = []gin.param{
    {
        key: "id",
        value: "first document",
    },
}

由于 c.request.url 在我的一些测试中为零,因此我无法获得接受的答案。

相反,您可以像这样设置查询:

c.Request.URL, _ = url.Parse("?id=mock")

以上就是《以编程方式在Gin上下文中设置URL参数以进行测试》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>