草庐IT

interface-design

全部标签

unit-testing - 模拟接口(interface)函数没有被调用

我正在尝试使用testify模拟库编写Go单元测试。我正在关注这个博客http://goinbigdata.com/testing-go-code-with-testify/.我已将模拟接口(interface)传递给newCalculator函数,但仍然调用Random接口(interface)的Random1而不是structrandomMock的Random1函数。计算器.gopackagecalculatortypeRandominterface{Random1(limitint)int}funcnewCalculator(rndRandom)Random{returncalc

go - 如何在特定部分创建一个具有接口(interface)名称的文件,然后从另一个文件中解析以修改 GO 中数据的接口(interface)?

我正在构建一个程序来更改Ubuntu18.04.1LTS中机器的IP地址。所以基本上我是用创建一个YAML文件模板network:ethernets:{INTERFACE}:dhcp4:noaddresses:[{IP}/24]gateway4:{GATEWAY}optional:truenameservers:addresses:[{DNS}]{INTERFACE2}:dhcp4:noaddresses:[{IP2}/24]gateway4:{GATEWAY2}optional:truenameservers:addresses:[{DNS2}]现在我需要扫描此模板文件并通过JSON

go - 如何在特定部分创建一个具有接口(interface)名称的文件,然后从另一个文件中解析以修改 GO 中数据的接口(interface)?

我正在构建一个程序来更改Ubuntu18.04.1LTS中机器的IP地址。所以基本上我是用创建一个YAML文件模板network:ethernets:{INTERFACE}:dhcp4:noaddresses:[{IP}/24]gateway4:{GATEWAY}optional:truenameservers:addresses:[{DNS}]{INTERFACE2}:dhcp4:noaddresses:[{IP2}/24]gateway4:{GATEWAY2}optional:truenameservers:addresses:[{DNS2}]现在我需要扫描此模板文件并通过JSON

go - 我怎样才能将这个 api 提取到一个接口(interface),以便我可以在我的测试中模拟它?

所以目前我有一个看起来像这样的http处理程序:typeAppstruct{}func(a*App)someHandler(whttp.ResponseWriter,r*http.Request){varapi=slack.New("TOKEN")users=api.GetUsers()}我想为这个slack.New("...")调用创建一个接口(interface),这样在我的测试中api就不会向slack发出网络请求。我如何模拟这个新调用?调用New("TOKEN")返回一个*Client,见下面的链接:funcNew(tokenstring,options...Option)*C

go - 我怎样才能将这个 api 提取到一个接口(interface),以便我可以在我的测试中模拟它?

所以目前我有一个看起来像这样的http处理程序:typeAppstruct{}func(a*App)someHandler(whttp.ResponseWriter,r*http.Request){varapi=slack.New("TOKEN")users=api.GetUsers()}我想为这个slack.New("...")调用创建一个接口(interface),这样在我的测试中api就不会向slack发出网络请求。我如何模拟这个新调用?调用New("TOKEN")返回一个*Client,见下面的链接:funcNew(tokenstring,options...Option)*C

mongodb - 我如何将 BSON 文档转换为 map[string]interface{}

我试图将游标的数据解码成一个map[string]interface{},我直接试了但是它根本不起作用,所以我发现我必须将它转换为BSON文档并且接下来将其转换为map[string]interface{},最后转换为JSON字符串。我尝试了以下代码:...forcursor.Next(context.Background()){err=cursor.Decode(&itemBson)...b,err:=bson.Marshal(itemBson)...err=bson.Unmarshal(b,&itemMap)...}...但是bson文档有如下值:map[_id:ObjectID(

mongodb - 我如何将 BSON 文档转换为 map[string]interface{}

我试图将游标的数据解码成一个map[string]interface{},我直接试了但是它根本不起作用,所以我发现我必须将它转换为BSON文档并且接下来将其转换为map[string]interface{},最后转换为JSON字符串。我尝试了以下代码:...forcursor.Next(context.Background()){err=cursor.Decode(&itemBson)...b,err:=bson.Marshal(itemBson)...err=bson.Unmarshal(b,&itemMap)...}...但是bson文档有如下值:map[_id:ObjectID(

golang 从接口(interface)获取值{}

我正在遍历从couchDB.View返回的结果并提取key。for_,row:=rangerows{fmt.Printf("%v,%T\n",row.Key,row.Key)}结果是:[nh001mgr],[]interface{}[nh002nh],[]interface{}我需要读取这个接口(interface)并获取第二个值(“mgr”或“nh”)。我无法对此进行迭代,因为这不是map。 最佳答案 我假设您的值row.Key是作为interface{}从某处返回的?如果是,那么在您的rangerows中,您可以尝试将其转换为类

golang 从接口(interface)获取值{}

我正在遍历从couchDB.View返回的结果并提取key。for_,row:=rangerows{fmt.Printf("%v,%T\n",row.Key,row.Key)}结果是:[nh001mgr],[]interface{}[nh002nh],[]interface{}我需要读取这个接口(interface)并获取第二个值(“mgr”或“nh”)。我无法对此进行迭代,因为这不是map。 最佳答案 我假设您的值row.Key是作为interface{}从某处返回的?如果是,那么在您的rangerows中,您可以尝试将其转换为类

go - 在 Go 中配置网络接口(interface)

Go是否提供配置网络接口(interface)的方法?我找到了一个非常好用的net.Interfaces获取信息的方法,但我想修改网络配置。 最佳答案 为了修改您的网络配置,最好的方法是调用外部工具,如ip、iptables、ifconfig、brctl等。这是我们在docker(https://github.com/dotcloud/docker/blob/master/network.go#L72)中的做法 关于go-在Go中配置网络接口(interface),我们在StackOve