草庐IT

hdr-Description_of_testing_flags

全部标签

戈朗 : Is there a way to modify one of the multi-value return parameters in one line?

我正在尝试在Go中做一些相对简单的事情——将字符串转换为整数,然后将其加倍:myInt,_:=strconv.Atoi(args[1])doubleArg:=myInt*2由于Atoi()返回两个参数(整数和err),我使用myInt,_:=来检索值的整数。我想将它加倍(因此是第二行)但不能在一行中完成所有操作:myInt,_:=strconv.Atoi(args[1])*2给我:multiple-valuestrconv.Atoi()insingle-valuecontext但是,根据我使用大多数其他语言的经验,必须在两行中执行此操作似乎有很多样板。这只是我必须处理的一个限制,还是有

testing - 我应该使用哪种方法来测试 golang 中的 func main()?

我在main.go中有一个函数main()可以完成这项工作,所有其他函数都在它下面(我没有在这里包括它们)。因此,当我为main中包含的所有funcs编写测试时,我可以测试它们。但是代码覆盖率很低,因为它表明我没有覆盖main函数中的代码。我知道测试库中有一个TestMain函数可以完成这项工作,但我就是不知道如何让它工作,以便测试涵盖funcmain()。下面是我的main()函数,它没有被测试覆盖...funcmain(){c,err:=getConfig()iferr!=nil{log.Fatal(err)}slideshows,err:=getSlideshows(c)ifer

go - 如何捕获 "slice bounds out of range"错误并为其编写句柄

我在stackoverflow中阅读了有关“范围的slice边界”的其他问题,但没有一个使用与此相同的上下文。然后,没有一个答案对我有帮助。在我的用例中,使用[]的子字符串的“golang语法”不会返回错误变量。它使用“panic”指令启动运行时错误。我的目标是避免达到“panic”指令。我需要处理此错误并提供消息来更详细地描述发生此错误时的上下文。观察:我需要获取子字符串值的字符串变量的内容是完全动态的,我用来获取子字符串值的索引同样是动态计算的。 最佳答案 您需要对索引进行边界检查:ifj>=0&&j

unit-testing - 如何为一小时后函数返回时间编写单元测试

我有以下函数,它在当前时间添加给定的小时数并在中返回新时间funcgetExpiryTime(hourint)*string{constlayout="2006-01-02T15:04:05Z"expiryTime:=time.Now().Local().Add(time.Hour*time.Duration(hour))returnaws.String(expiryTime.Format(layout))}为此功能编写单元测试的最佳方法是什么? 最佳答案 您可以尝试模拟时间提供程序并在您的模拟中设置time.Now()函数以返回您

unit-testing - 去单元测试无法加载文件

1、gotestconfig_test.go,总是文件,error:openconf/config.yml:Thesystemcannotfindthepathspecified2、源码ok3、gotestfile如何在不同目录下成功 最佳答案 测试期间您的工作目录不同。您可能需要动态计算配置目录路径的解决方法,例如:http://www.kaihag.com/external-assets-working-directories-and-go/ 关于unit-testing-去单元测试

go - 新的 TCP 连接抛出 "use of closed network connection",即使它刚刚打开

打开新连接时,我有时会在client.Socket.Read(message)处收到“使用已关闭的网络连接”错误在receive功能。这已经够奇怪了,但真正奇怪的是我在尝试关闭位于close(connection.Data)的已关闭channel时收到错误消息,当客户端通过manager.unregister.我显然在这里遗漏了一些东西,因为我的所有日​​志记录都表明这些是全新且未使用的channel和套接字。有什么想法吗?我使用的是Golang1.10版。typeClientManagerstruct{clientsmap[*types.Client]boolbroadcastcha

unit-testing - 错误 : suite. go:61: test paniced: reflect: Call with too few input arguments

我正在golang中设置单元测试。但是现在我在运行gotest-v时遇到错误。我想解决这个错误并使测试成功。article├client├api│├main.go│├contoroller││├contoroller.go││└contoroller_test.go│├service││├service.go││└service_test.go│├dao││├dao.go││└dao_test.go│├s3││├s3.go││└s3_test.go│├go.mod│├go.sum│└Dockerfile├nginx└docker-compose.yml现在我正在为service.go设

arrays - 戈朗 : Is this an acceptable way to create a Slice from part of another Slice?

我四处搜索并没有找到另一个这样做的例子,但我无意中发现我能够通过简单地将另一个slice的片段传递给接受slice并返回它的函数来从另一个slice的片段创建一个sliceslice。例子:packagemainimport"fmt"funcmakeSliceFrom(s[]int)[]int{returns}funcmain(){s:=[]int{1,2,3,4,5,6,7,8,9,10}newS:=makeSliceFrom(s[1:7])fmt.Println(newS)}我不是在问这是否有效,因为我知道它有效并且似乎运作良好,我是在问这是否得到支持或有一些我不知道的不可预见的成

go - panic : runtime error: index out of range [recovered]

在将ifj==len(remark)修改为ifj==len(remark)&&z>0之后,我的代码出现了panic错误错误是:---FAIL:TestHey(0.00s)panic:runtimeerror:indexoutofrange[recovered]panic:runtimeerror:indexoutofrangegoroutine5[running]:testing.tRunner.func1(0xc04207a0f0)C:/Go/src/testing/testing.go:711+0x2d9panic(0x526700,0x5f57c0)C:/Go/src/runti

golang 运行时错误 : index out of range

我在go中有一个简单的for循环,它遍历一个整数片段并更改当前位置,如果下一个更小,基本上是一种排序,但它一直向我显示这个错误,上面写着panic:runtimeerror:indexoutofrange代码如下:funcsort(nint,l[]int)interface{}{fmt.Println(l)ifd==false{d=truefori:=rangel{n:=i+1t:=l[i]l[i]=l[n]l[n]=tarr=ld=false}returnsort(n,arr)}returnarr}返回的arr声明为全局变量。这是错误:panic:runtimeerror:index