草庐IT

unit-testing - 测试基于时间的字段是否有意义? (戈朗)

我有几个字段类型为time.Time的结构。我想知道测试它们的最佳做法是什么?我是否应该简单地将time.Time字段设置为nil并测试结构的其余部分(即reflect.DeepEqual)?否则有没有办法让时间确定?给定以下功能,您将如何测试它?typemystructstruct{sstringtimetime.Time}//myfuncreceivesastringandreturnsastructoftypemystruct//withthesamestringandthecurrenttime.funcmyfunc(sstring)mystruct{returnmystruc

unit-testing - 测试基于时间的字段是否有意义? (戈朗)

我有几个字段类型为time.Time的结构。我想知道测试它们的最佳做法是什么?我是否应该简单地将time.Time字段设置为nil并测试结构的其余部分(即reflect.DeepEqual)?否则有没有办法让时间确定?给定以下功能,您将如何测试它?typemystructstruct{sstringtimetime.Time}//myfuncreceivesastringandreturnsastructoftypemystruct//withthesamestringandthecurrenttime.funcmyfunc(sstring)mystruct{returnmystruc

unit-testing - 用于 http 处理程序测试的 Golang 模拟函数

我正在为我的PostLoginHandler编写单元测试,需要模拟一个session中间件函数。在我的处理程序中,它调用了session.Update(),我想模拟它以返回nil。阅读各种答案后,我的第一直觉是制作一个SessionManager界面,但即便如此我也不清楚如何进行。main.go:funcPostLoginHandler(cweb.C,whttp.ResponseWriter,r*http.Request){r.ParseForm()user,pass:=r.PostFormValue("username"),r.PostFormValue("password")ctx

unit-testing - 用于 http 处理程序测试的 Golang 模拟函数

我正在为我的PostLoginHandler编写单元测试,需要模拟一个session中间件函数。在我的处理程序中,它调用了session.Update(),我想模拟它以返回nil。阅读各种答案后,我的第一直觉是制作一个SessionManager界面,但即便如此我也不清楚如何进行。main.go:funcPostLoginHandler(cweb.C,whttp.ResponseWriter,r*http.Request){r.ParseForm()user,pass:=r.PostFormValue("username"),r.PostFormValue("password")ctx

go - 使用接口(interface)模拟数据库返回类型

如何使用接口(interface)正确模拟一些*sql.DB方法进行单元测试?例如,我想要一个Store结构用作我的处理程序的数据源。它有一个conn字段,即*sql.DB。但在我的测试中,我想模拟数据库,所以我尝试返回的不是实际的*sql.Rows,而是*sql.Rows应该满足的接口(interface)。这是代码:typeTestRowsinterface{Scan()}typeTestDBinterface{Query(querystring,args...interface{})(TestRows,error)}typeRowsstruct{//..}func(r*Rows)

go - 使用接口(interface)模拟数据库返回类型

如何使用接口(interface)正确模拟一些*sql.DB方法进行单元测试?例如,我想要一个Store结构用作我的处理程序的数据源。它有一个conn字段,即*sql.DB。但在我的测试中,我想模拟数据库,所以我尝试返回的不是实际的*sql.Rows,而是*sql.Rows应该满足的接口(interface)。这是代码:typeTestRowsinterface{Scan()}typeTestDBinterface{Query(querystring,args...interface{})(TestRows,error)}typeRowsstruct{//..}func(r*Rows)

amazon-web-services - 如何为 Go 调用模拟 AWS SDK

我正在为使用适用于Go的AWS开发工具包从AWSSecretsManager获取secret的函数编写单元测试:ma​​in.go//HelperfunctiontogetsecretfromAWSSecretManagerfuncgetAWSSecrets(svcsecretsmanageriface.SecretsManagerAPI)(secretMapmap[string]string,errerror){//Getsecretconfigvaluesreq,resp:=svc.GetSecretValueRequest(&secretsmanager.GetSecretVal

amazon-web-services - 如何为 Go 调用模拟 AWS SDK

我正在为使用适用于Go的AWS开发工具包从AWSSecretsManager获取secret的函数编写单元测试:ma​​in.go//HelperfunctiontogetsecretfromAWSSecretManagerfuncgetAWSSecrets(svcsecretsmanageriface.SecretsManagerAPI)(secretMapmap[string]string,errerror){//Getsecretconfigvaluesreq,resp:=svc.GetSecretValueRequest(&secretsmanager.GetSecretVal

testing - Golang 中的模拟函数来测试我的 http 路由

我完全不知道如何在不使用任何其他包(如golang/mock)的情况下模拟一个函数。我只是想学习如何这样做,但找不到很多像样的在线资源。本质上,我followedthisexcellentarticle这解释了如何使用接口(interface)来模拟事物。因此,我重新编写了我想测试的函数。该函数只是将一些数据插入数据存储区。我对此的测试没问题——我可以直接模拟该函数。我遇到的问题是在我尝试测试的http路由“内”模拟它。我正在使用Gin框架。我的路由器(简化版)如下所示:funcSetupRouter()*gin.Engine{r:=gin.Default()r.Use(gin.Log

testing - Golang 中的模拟函数来测试我的 http 路由

我完全不知道如何在不使用任何其他包(如golang/mock)的情况下模拟一个函数。我只是想学习如何这样做,但找不到很多像样的在线资源。本质上,我followedthisexcellentarticle这解释了如何使用接口(interface)来模拟事物。因此,我重新编写了我想测试的函数。该函数只是将一些数据插入数据存储区。我对此的测试没问题——我可以直接模拟该函数。我遇到的问题是在我尝试测试的http路由“内”模拟它。我正在使用Gin框架。我的路由器(简化版)如下所示:funcSetupRouter()*gin.Engine{r:=gin.Default()r.Use(gin.Log