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")
})
}
我已经查看了文档,但它没有解释为 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")
})
}