go mock mysql_使用Golang的官方mock工具--gomock

598a11bbdafb

4C7AD81C-DECF-4C23-802B-9F02EFF42C48.jpg

在Golang的官方Repo(https://github.com/golang/)中有一个单独的工程叫"mock"(https://github.com/golang/mock),虽然star不是特别多,但它却是Golang官方放出来的mock工具,充这这点我们也需要使用下,虽然并不是官方的就是最好(比如比标准库http更快的fasthttp)。

不同场景mock的对象互相不同,那么gomock主要是mock哪些内容呢?

mockgen has two modes of operation: source and reflect. Source mode generates mock interfaces from a source file.

Reflect mode generates mock interfaces by building a program that uses reflection to understand interfaces.

通过gomock的辅助工具我们知道,gomock主要是针对我们go代码中的接口进行mock的。

安装

gomock主要包含两个部分:" gomock库"和“ 辅助代码生成工具mockgen”

他们都可以通过go get来获取:

go get github.com/golang/mock/gomock

go get github.com/golang/mock/mockgen

如何你设置过$GOPATH/bin到你的$PATH变量中,那么这里就可以直接运行mockgen命令了,否则需要使用绝对路径或者相当于$GOPATH的目录。

示例

gomock的repo中带了一个官方的例子,但是这个例子过于强大和丰富,反而不适合尝鲜,下面我们写个我们自己的例子(https://www.github.com/cz-it/blog/blog/Go/testing/gomock/example),一个获取当前Golang最新版本的例子:

tree .

.

├── go_version.go

├── main.go

└── spider

└── spider.go

目录结构如上。这里spider.go作为接口文件,定义了spider包的接口:

package spider

type Spider interface {

GetBody() string

}

这里假设接口GetBody直接可以抓取"https://golang.org"首页的“Build version”字段来得到当前Golang发布出来的版本。

这里在go_version.go中对这个接口进行使用:

import (

"github.com/cz-it/blog/blog/Go/testing/gomock/examp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值