草庐IT

test_slice

全部标签

go - 在 Go 中创建一个任意 slice 类型的 stringer 方法

刚接触Golang。所以我在Go之旅中读到了关于stringer的内容,我想知道是否有任何方法可以为任何类型的slice定义一个通用的自定义Stringer()?例如:packagemainimport"fmt"typeIntSlice[]intfunc(aIntSlice)String()string{returnfmt.Sprintf("len%d\tcap%d",len(a),cap(a))}funcmain(){a:=[40]int{}sa:=IntSlice(a[:])fmt.Println(unsafe.Sizeof(a),"\t",unsafe.Sizeof(sa),""

unit-testing - 测试在 Golang 中加载 JSON 配置文件的方法

在Golang在测试项目中,有一种方法可以将JSON配置文件加载到变量中。它的代码是这样的://LoadtheJSONconfigfilefuncLoad(configFilestring,outputObjinterface{})*errors.ErrorSt{varerrerror//ReadtheconfigfilejsonBytes,err:=ioutil.ReadFile(configFile)iferr!=nil{fmt.Println(err.Error())returnerrors.File().AddDetails(err.Error())}//Parsethecon

unit-testing - 我如何对这个用 golang 编写的 promptui 包进行单元测试?

我是golang的新手,我在我的一个项目中使用了一个名为promptui(https://github.com/manifoldco/promptui)的交互式提示。我已经为这个项目编写了几个单元测试,但我正在努力解决如何对这个需要输入的特定包进行单元测试的问题。例如,我将如何着手测试以下代码行(封装在一个函数中):funcsetEmail()string{prompt:=promptui.Prompt{Label:"InputyourEmail",Validate:emailValidations,}email,err:=prompt.Run()iferr!=nil{color.re

unit-testing - 在 Go 中模拟接收函数

我正在尝试对调用该结构中其他接收函数的接收函数进行单元测试。假设我想在下面测试Three()并模拟对two()的调用:typeMyStructstruct{astringbstring}func(m*MyStruct)one()int{return2}func(m*MyStruct)two()int{returnm.one()*2}func(m*MyStruct)Three()int{returnm.two()*2}我遵循以下方法二answer.我为每个我想进行单元测试的函数创建了一个自定义构造函数,并用模拟版本覆盖了这些方法。但我认为一旦函数数量增加,维护代码可能并不容易。是否有任何

arrays - 在 MongoDB Golang 中存储 slice 和嵌套结构

我已经用下一个结构用Go构建了一个程序typeAstruct{feature[]string}typeBstruct{titlestringother_feature[]A}我尝试使用bson包,但执行后只有标题出现在数据库中。有人有解决方案吗? 最佳答案 您需要export字段名称以大写字母开头。使用bson字段标记指定数据库中使用的名称。typeAstruct{Feature[]string`bson:"feature"`}typeBstruct{Titlestring`bson:"title"`Other_feature[]A

arrays - 在go中查找二维 slice 的长度

我想检查两个矩阵的大小是否相同:两个矩阵的行数和列数是否相同。matrix1:=[][]int{{1,2,3},{4,5,6}}matrix2:=[][]int{{7,8,9},{10,11,12}}我得到len(matrix1)==len(matrix2)==2。这是正确的行数。如果我如上所示声明矩阵,如何检查每行的长度(即列数,应为3)? 最佳答案 请注意,由于二维slice中的每个“行”可能具有任意长度,因此您应该检查每个对应行(具有相同索引)的长度是否相等。这是一个函数:funcmatch(m1,m2[][]int)bool

go - Nil slice vs 空 slice 和 nil 值比较

我读过一些关于nilslice和emptyslice的文章。我相信我对它们之间的区别有一些基本的了解。我的理解总结:varinstance[]Typeisnilsliceandinstance==nilreturnstrue;而instance:=[]Type{}是空slice并且instance!=nil然而,这个特殊的例子仍然让我感到困惑。请查看下面的链接以获取代码。我的问题是最后两个案例。https://play.golang.org/p/udyHoOlSeP假设我想比较两个slice,重命名类型和接口(interface)匹配等等。接收者可以是nil的实例,即使它没有定义为按值

unit-testing - 如何在golang中为http请求编写单元测试?

我不知道如何测试下面代码中给出的http响应。funcgetVolDetails(volNamestring,objinterface{})error{addr:=os.Getenv("MAPI_ADDR")ifaddr==""{err:=errors.New("MAPI_ADDRenvironmentvariablenotset")fmt.Println(err)returnerr}url:=addr+"/path/to/somepage/"+volNameclient:=&http.Client{Timeout:timeout,}resp,err:=client.Get(url)i

string - 将字符串 slice 转换为指向字符串的指针 slice

我想将一段字符串转换成一段指向字符串的指针values1:=[]string{"a","b","c"}varvalues2[]*stringfor_,v:=rangevalues1{fmt.Printf("%p|%T\n",v,v)values2=append(values2,&v)}fmt.Println(values2)%!p(string=a)=>string%!p(string=b)=>string%!p(string=c)=>string[0xc42000e1d00xc42000e1d00xc42000e1d0]据我了解,我的变量v似乎是一个字符串,而不是指向字符串的指针。因

arrays - 如何将一个小 slice 复制到一个大 slice 的末尾

我正在寻找JavaSystem.arraycopy()的等效项假设我有2个slicesmall:=make([]byte,4)big:=make([]byte,10)我想将small的内容复制到位置6的big(small的字节是的最后一个字节code>大我找到的唯一方法是编写一个循环。 最佳答案 使用内置copy功能:copy(big[6:],small) 关于arrays-如何将一个小slice复制到一个大slice的末尾,我们在StackOverflow上找到一个类似的问题: