Gin中测试模式有什么用

What is the use of test mode in Gin

我已经查看了文档,但它没有解释为 gin 使用设置测试模式

gin.SetMode(gin.TestMode)

提供这个测试模式是为了什么?在我的测试中设置和不设置此模式时,我没有看到任何区别。

标志 gin.DebugMode 用于控制 gin.IsDebugging() 的输出,它添加了一些额外的日志输出并将 HTML 渲染器更改为调试结构 HTMLDebug

gin.TestMode 用于 Gin 自己的单元测试,以打开和关闭调试模式(和附加日志记录),以及调试 HTML 渲染器的使用。

除此之外,它没有其他用途(source)。

但是,可以通过环境变量 GIN_MODE=test 控制标志。然后,由于 Mode() 被导出,您可以在应用程序代码中使用它,例如声明测试路由。如果您计划 运行 E2E 测试套件或其他一些集成测试,这可能会有一些好处:

    r := gin.New()
    if gin.Mode() == gin.TestMode {
        r.GET("/test", func(c *gin.Context) {
            c.String(418, "I don't exist in production")
        })
    }