gomock-Golang的官方mock工具

蚂蚁窝大梦想 · · 1668 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

GoMock是Go编程语言的模拟框架。它与Go的内置测试包很好地集成,但也可以在其他环境中使用。

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

Installation

Once you have installed Go 【已设置$GOPATH/bin】, run these commands to install the gomock package and the mockgen tool:

go get github.com/golang/mock/gomock
go install github.com/golang/mock/mockgen

获得帮助

go doc github.com/golang/mock/gomock

在线参考package gomock

mockgen工具--生成mock类文件

mockgen有两种操作模式:source and reflect(源文件和反射)

源模式

通过包含interface定义的文件生成mock类文件,通过 -source 标识生效,-imports 和 -aux_files 标识在这种模式下也是有用的。
Example:

mockgen -source=foo.go [other options]

反射模式

通过构建一个程序用反射理解接口生成一个mock类文件,
它通过传递两个非标志参数来启用:导入路径和逗号分隔的符号列表(多个interface)。
Example:

mockgen database/sql/driver Conn,Driver
//注意:第一个参数是基于GOPATH的相对路径,第二个参数可以为多个interface,并且interface之间只能用逗号分隔,不能有空格。

mockgen支持的选项如下:

  • -source:指定接口文件
  • -destination: 生成的mock类代码的文件。如果你没有设置这个选项,代码将被打印到标准输出
  • -aux_files:接口文件不止一个文件时附加文件
  • -build_flags: 传递给build工具的参数
    一般用-source。复杂场景下,如定义多个interface(仅对部分interface进行mock),interface存在嵌套,需用反射模式。
    案例:
比如mock代码使用

mockgen -destination spider/mock_spider.go -package spider -source spider/spider.go

使用mock对象进行打桩测试


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:蚂蚁窝大梦想

查看原文:gomock-Golang的官方mock工具

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1668 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传