美文网首页
gomock-Golang的官方mock工具

gomock-Golang的官方mock工具

作者: 蚂蚁窝大梦想 | 来源:发表于2019-07-29 17:03 被阅读0次

    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存在嵌套,需用反射模式。
      案例:
    案例1:
    mockgen -destination spider/mock_spider.go -package spider -source spider/spider.go
    案例2:
    mockgen -package=mocks -destination model/repository/mocks/redis_repository.go github.com/api/model/repository IRedisgRepository
    
    

    使用mock对象进行打桩测试

    相关文章

      网友评论

          本文标题:gomock-Golang的官方mock工具

          本文链接:https://www.haomeiwen.com/subject/cmnbrctx.html