草庐IT

testing - 模拟 bufio.NewScanner 的标准输出流

我想为我使用bufio.NewScanner和Scan()的实用函数编写测试。我通常在stdout上使用它,现在我想模拟一小段流,我可以在其中返回一些静态字符串以进行测试。bufio.NewScanner(rio.Reader)需要一个Reader但它只需要一个read方法。通过阅读源代码,我无法弄清楚它从哪个缓冲区读取或者它是如何传入的。我怎样才能以简洁明了的方式模拟它? 最佳答案 要简单地测试您的代码,您可以使用@Sven的回答。要了解用于测试的简单io.Reader,请考虑以下示例:typeRstruct{Datastring

testing - 模拟 bufio.NewScanner 的标准输出流

我想为我使用bufio.NewScanner和Scan()的实用函数编写测试。我通常在stdout上使用它,现在我想模拟一小段流,我可以在其中返回一些静态字符串以进行测试。bufio.NewScanner(rio.Reader)需要一个Reader但它只需要一个read方法。通过阅读源代码,我无法弄清楚它从哪个缓冲区读取或者它是如何传入的。我怎样才能以简洁明了的方式模拟它? 最佳答案 要简单地测试您的代码,您可以使用@Sven的回答。要了解用于测试的简单io.Reader,请考虑以下示例:typeRstruct{Datastring

unit-testing - 监视 Golang 中的方法

有什么办法可以窥探Golang中的方法吗?例如,假设我有typeObjectstruct{AintBstringC*interface{}}func(o*Object)Something(valinterface{}){o.A=102//someotherbusinesslogicundertesto.SomethingElse(o.C,val)}//...func(o*Object)Process(valinterface{})interface{}{//somebusinesslogicreturn43//orsomethingelse.nomeimportaya}//...fun

unit-testing - 监视 Golang 中的方法

有什么办法可以窥探Golang中的方法吗?例如,假设我有typeObjectstruct{AintBstringC*interface{}}func(o*Object)Something(valinterface{}){o.A=102//someotherbusinesslogicundertesto.SomethingElse(o.C,val)}//...func(o*Object)Process(valinterface{})interface{}{//somebusinesslogicreturn43//orsomethingelse.nomeimportaya}//...fun

testing - 哪个目录放模拟?

我最近一直在试验GoMock,由Go语言的官方创建者支持的测试模拟框架。我想知道把这些模拟文件放在哪里最合理。我目前的目录结构如下。这是Go项目的结构吗?appname|--gateways|--gateway1.go|--gateway1_test.go|--gateway2.go|--gateway2_test.go|--mocks|--gateway1.go|--gateway2.go这受到BenJohnson演讲的轻微影响here. 最佳答案 我也倾向于关注BenJohnson的这篇文章Linktoarticle一般来说,这

testing - 哪个目录放模拟?

我最近一直在试验GoMock,由Go语言的官方创建者支持的测试模拟框架。我想知道把这些模拟文件放在哪里最合理。我目前的目录结构如下。这是Go项目的结构吗?appname|--gateways|--gateway1.go|--gateway1_test.go|--gateway2.go|--gateway2_test.go|--mocks|--gateway1.go|--gateway2.go这受到BenJohnson演讲的轻微影响here. 最佳答案 我也倾向于关注BenJohnson的这篇文章Linktoarticle一般来说,这

go - 使用 go-sqlmock 在 SQL 查询中获取参数值

我目前正在使用go-sqlmock模拟我的数据库。有什么方法可以在执行查询时获取已传递给sql驱动程序的值吗?就像这里作为参数传递的arg变量:import("database/sql")funcretrieveInfo(){//thisfunctionreturnsaninitializedinstanceoftype*sql.DBDbDriver:=initDb()query:="myquery"arg:=3rows,err:=Db_driver.Query(query,arg)//...}然后我想测试函数,我想在测试的时候知道变量arg的值。我认为这应该是可能的,因为它被传递给了

go - 使用 go-sqlmock 在 SQL 查询中获取参数值

我目前正在使用go-sqlmock模拟我的数据库。有什么方法可以在执行查询时获取已传递给sql驱动程序的值吗?就像这里作为参数传递的arg变量:import("database/sql")funcretrieveInfo(){//thisfunctionreturnsaninitializedinstanceoftype*sql.DBDbDriver:=initDb()query:="myquery"arg:=3rows,err:=Db_driver.Query(query,arg)//...}然后我想测试函数,我想在测试的时候知道变量arg的值。我认为这应该是可能的,因为它被传递给了

rest - Golang HTTP REST 模拟

我正在编写一个连接到具有REST端点的服务器的客户端。客户端需要发出11个不同请求的链来完成一个操作(这是一个rococo备份系统)。我正在用Go编写我的客户端,我也想用Go编写我的模拟/测试。我不清楚的是名为funcTestMain的测试如何调用客户端的funcmain(),以测试11个请求链的完成情况。我的客户端的二进制文件将以下列方式从shell运行:$client_id=12345region=apac3备份如何从测试中调用funcmain()并设置环境变量?还是有另一种方法?(我是comfortablewritingtests,所以这不是问题)我正在查看jarcoal/htt

rest - Golang HTTP REST 模拟

我正在编写一个连接到具有REST端点的服务器的客户端。客户端需要发出11个不同请求的链来完成一个操作(这是一个rococo备份系统)。我正在用Go编写我的客户端,我也想用Go编写我的模拟/测试。我不清楚的是名为funcTestMain的测试如何调用客户端的funcmain(),以测试11个请求链的完成情况。我的客户端的二进制文件将以下列方式从shell运行:$client_id=12345region=apac3备份如何从测试中调用funcmain()并设置环境变量?还是有另一种方法?(我是comfortablewritingtests,所以这不是问题)我正在查看jarcoal/htt