草庐IT

go-mocket

全部标签

go - 如何使用 testify/mock 在 golang 中模拟数据库层

我正在尝试在服务器上运行单元测试,并使用“github.com/strethr/testify/mock”模拟数据库层。将所有代码放在这里会使它变得非常困惑,所以我创建了一个小项目,它将给出我的代码结构的想法以及我真正想要实现的目标“https://github.com/utkarsh17ife/goMockPractice”。您可以提取此代码并运行“gotest./...”(不确定在这里提供github链接是否正确,但我觉得这会让事情变得更容易)Serverstruct有一个接口(interface)类型的字段db,所以当我们创建一个普通服务器时,db被分配给真实数据库,但在测试时它

go - 我如何模拟另一个包中的函数?

套餐AfuncValidate(){db.CheckPresent()//howtomockthisfunctionwhichisinanotherpackagereturnnil}我正在Golang中编写测试用例来测试从另一个包调用CheckPresent()函数的函数。如何模拟CheckPresent()函数? 最佳答案 typeCheckerinterface{CheckPresent()}//mocktypecheckerMockstruct{}func(mcheckerMock)CheckPresent(){}//prod

go - 使用 golang.org/x/oauth2 通过 golang Facebook 身份验证获取电子邮件数据

我正在尝试使用golang.org/x/oauth2包编写一个简单的程序,我已经尝试过以下代码:https://stackoverflow.com/a/36672164/11094212但是,我无法收到电子邮件:returnfromfacebook这是我的配置:myconfig我错过了什么吗?提前致谢。 最佳答案 我找到了解决方案:https://graph.facebook.com/v3.2/me?fields=id,name,email&access_token=我只是添加fields=id,name,email来获取字段

go - 如何使用带有配置文件的log4go?

我一直在尝试在golang中使用log4go。但是我找不到一个合适的例子,其中使用了log4go配置属性,如旋转、maxSize等来创建记录器。有人可以举个例子吗?我引用了很多网站。 最佳答案 log4go没有很好的文档,我在originalrepository中找到了一些文档.如果可以,我会使用不同的库,例如logrus,具有更好的文档、示例并且正在积极开发中。 关于go-如何使用带有配置文件的log4go?,我们在StackOverflow上找到一个类似的问题:

go - Conn 在 Go 中随机关闭且没有警告

我正在构建一个与多个发起者一起使用的回声算法,本质上我有三个函数“talk”、“listen”和“runalgorithm”。“talk”向邻居发送数据,“listen”从邻居接收数据,这两者都使用channel。这些channel在“运行算法”函数中被监控,该函数决定发送什么以及发送给谁。本质上是这样的:funcserver(sNode,myChannelchanstring){fmt.Printf("SERVERLaunchingserver...%s:%s\n",s.ip,s.port)//Startlistening//Wedonotstoplisteninguntilthes

go - golang 中无效的内存地址或 nil 指针取消引用

我是golang的新手,到目前为止我很喜欢它但是我在运行应用程序时遇到了这个问题:invalidmemoryaddressornilpointerdereference我应该怎么做才能解决这个问题?这是主文件syntax.go:packagemainimport("blog/models""fmt""net/http")funcmain(){models.DbConn()http.HandleFunc("/books",postsIndex)http.ListenAndServe(":3000",nil)}funcpostsIndex(whttp.ResponseWriter,r*ht

go - context 在使用 Value(key) 后返回 nil 接口(interface)

我有一个ctx(context.Context)变量,它的值为:ctx=context.Background.WithCancel.WithCancel.WithValue(peer.peerKey{},&peer.Peer{Addr:(*net.UnixAddr)(0xc000270820),AuthInfo:credentials.AuthInfo(nil)}).WithValue(metadata.mdIncomingKey{},metadata.MD{":authority":[]string{"unix:///run/containerd/containerd.sock"},

go - 无法运行 go 权限被拒绝?

david@raspberrypi:~$goenv-bash:/usr/bin/go:Permissiondenied这是我的bash.rcexportGOPATH=$HOME/go$HOME/.bashrcexportPATH=$PATH:$GOROOT/bin:$GOPATH/bin如果我在我的david@raspberrypi中运行ls-lah,我会得到以下信息:david@raspberrypi:~$ls-lahtotal28Kdrwxr-xr-x3daviddavid4.0KMar222:20.drwxr-xr-x4rootroot4.0KMar220:03..-rw----

go - scanfl 声明变量超出功能

我需要帮助才能走出困境,因为我不明白我遇到的问题背后的逻辑。我需要多次询问用户输入,所以从逻辑上讲,我正在创建如下函数:funcaskstuff(){fmt.Println("Writesomething:")varinputstringfmt.Scanln(&input)}现在我需要让用户从main()函数输入一个变量,但我有一个非声明性问题和大脑问题....事实上我期待做类似的事情,但它是错了funcmain(){askstuff()printlnaskstuff(input)}我一直在阅读所有的帖子和文档,我明白我应该在main()之外,在主体中,在main()之前使用声明变量而

go - 我从客户端机器上使用 Go 运行 scp -i ssh "<filepath of remote linux machine> . ",但它返回 "no such file or directory"

这个问题在这里已经有了答案:fork/exec.nosuchfileordirectoryexitstatus1(3个答案)call'gobuild'commandfromgolangos.exec(1个回答)Whyisthiscurlcommandnotworking?(2个答案)callingcommandwithsomeargumentsworksbutnotwithothersbutworksfromconsole(1个回答)关闭3年前。如何使用Go执行scp-issh"."?我使用了以下代码片段。cmd:=exec.Command("scp-idragonstone.pem@