草庐IT

test_slice

全部标签

unit-testing - 如何使用 Go 日志包 glog 测试代码?

我已经实现了一个类型包装glog,这样我就可以在日志消息中添加一个前缀来标识我程序中日志的发射器,并且我可以更改每个发射器的日志级别。我如何实现单元测试?问题是glog将文本输出到stdErr。代码很简单,但我希望像其余代码一样进行单元测试和100%的覆盖率。这种编程工作已经付出了代价。 最佳答案 捕获标准错误的测试:packagemainimport("bytes""io""os""testing""github.com/golang/glog""strings")funccaptureStderr(ffunc())(string

go - 尝试创建 MovingAvarage 类型的 slice

我正在使用RobinUS2/golang-moving-average库来计算移动平均数,但我无法将这些平均数的一部分组合起来以计算多个变量的MA。ma:=[]movingaverage.MovingAverage{}ma[0]=movingaverage.New(15)ma[0].Add(3.14)有什么问题吗?我得到一个索引超出范围的错误。谢谢! 最佳答案 您需要预先调整slice的大小ma:=make(movingaverage.MovingAverage,5)给出容量为5、长度为5的slice,每个条目都设置为零值最好像你一

go - 尝试创建 MovingAvarage 类型的 slice

我正在使用RobinUS2/golang-moving-average库来计算移动平均数,但我无法将这些平均数的一部分组合起来以计算多个变量的MA。ma:=[]movingaverage.MovingAverage{}ma[0]=movingaverage.New(15)ma[0].Add(3.14)有什么问题吗?我得到一个索引超出范围的错误。谢谢! 最佳答案 您需要预先调整slice的大小ma:=make(movingaverage.MovingAverage,5)给出容量为5、长度为5的slice,每个条目都设置为零值最好像你一

unit-testing - 如何在 Go lang 中模拟 exec.Command 进行多个单元测试?

我刚刚学习了使用exec.Command()的单元测试函数,即模拟exec.Command()。我继续添加更多单元案例,但遇到了无法针对不同场景模拟输出的问题。这是一个示例代码hello.go我正在尝试测试...packagemainimport("fmt""os/exec")varexecCommand=exec.CommandfuncprintDate()([]byte,error){cmd:=execCommand("date")out,err:=cmd.CombinedOutput()returnout,err}funcmain(){fmt.Printf("hello,worl

unit-testing - 如何在 Go lang 中模拟 exec.Command 进行多个单元测试?

我刚刚学习了使用exec.Command()的单元测试函数,即模拟exec.Command()。我继续添加更多单元案例,但遇到了无法针对不同场景模拟输出的问题。这是一个示例代码hello.go我正在尝试测试...packagemainimport("fmt""os/exec")varexecCommand=exec.CommandfuncprintDate()([]byte,error){cmd:=execCommand("date")out,err:=cmd.CombinedOutput()returnout,err}funcmain(){fmt.Printf("hello,worl

go - 递归附加到 slice 不起作用

我正在尝试学习Go,但我不明白为什么递归调用堆栈末尾的这段代码返回一个空slice,有帮助吗?此外,tmp似乎甚至没有在调试器中注册。funcmain(){input:=[3]int{4,6,7}//expected[[6,7],[4,6,7],[4,6],[4,7]]fmt.Println(findSubsequences(input))}funcfindSubsequences(nums[3]int)[][]int{res:=[][]int{}list:=[]int{}findSubsequence(res,list,nums,0)returnres}funcfindSubsequ

go - 递归附加到 slice 不起作用

我正在尝试学习Go,但我不明白为什么递归调用堆栈末尾的这段代码返回一个空slice,有帮助吗?此外,tmp似乎甚至没有在调试器中注册。funcmain(){input:=[3]int{4,6,7}//expected[[6,7],[4,6,7],[4,6],[4,7]]fmt.Println(findSubsequences(input))}funcfindSubsequences(nums[3]int)[][]int{res:=[][]int{}list:=[]int{}findSubsequence(res,list,nums,0)returnres}funcfindSubsequ

Go slice 存储在动态内存或静态内存中

我正在搜索slice的内存分配,无论是在编译时是静态的还是动态的。由于slice是指向后面数组的指针,而且我已经研究过对于动态内存分配,指针是至关重要的。那么slice的分配是怎样的,maps又是如何分配的。 最佳答案 typeslicestruct{arrayunsafe.Pointerlenintcapint}slice描述符是一个结构。make([]type,len,cap)返回一个slice描述符,带有指向具有给定type的底层数组的指针,len(长度)和cap(容量)。slice描述符和/或其底层数组分配在堆栈和/或堆上。

Go slice 存储在动态内存或静态内存中

我正在搜索slice的内存分配,无论是在编译时是静态的还是动态的。由于slice是指向后面数组的指针,而且我已经研究过对于动态内存分配,指针是至关重要的。那么slice的分配是怎样的,maps又是如何分配的。 最佳答案 typeslicestruct{arrayunsafe.Pointerlenintcapint}slice描述符是一个结构。make([]type,len,cap)返回一个slice描述符,带有指向具有给定type的底层数组的指针,len(长度)和cap(容量)。slice描述符和/或其底层数组分配在堆栈和/或堆上。

json - 将 slice 结果 JSON 插入 MongoDB

我在Gin框架中使用MongoDB的mgo驱动程序。typeUsersstruct{User_id*string`json:"iduser"bson:"iduser"`Images[]string`json:"images"bson:"images"`}我有一个尝试将slice转换为JSON的函数。这里的slice是UsersTotalfuncGetUsersApi(c*gin.Context){UsersTotal,err:=GetUsers()iferr!=nil{fmt.Println("error:",err)}c.JSON(http.StatusOK,gin.H{"Count