mockery配置详解:20个参数让你的Mock更智能

mockery配置详解:20个参数让你的Mock更智能

【免费下载链接】mockery A mock code autogenerator for Go 【免费下载链接】mockery 项目地址: https://gitcode.com/gh_mirrors/moc/mockery

mockery是一个强大的Go语言Mock代码自动生成工具,它通过灵活的配置选项让单元测试变得更加智能和高效。本文将详细介绍mockery的20个核心配置参数,帮助你充分发挥这个工具的全部潜力。

🎯 基础配置快速上手

开始使用mockery非常简单,只需在项目根目录创建.mockery.yaml文件:

with-expecter: true
packages:
    github.com/your-org/your-go-project:
        config:
        interfaces:
            Foo:
                config:

这个基本配置启用了expecter功能,为后续的高级配置打下基础。

📋 20个核心配置参数详解

1. 智能Mock生成参数

all - 自动发现包内所有接口

  • 默认值:false
  • 功能:自动扫描指定包中的所有接口并生成对应的Mock

include-regex - 正则表达式过滤

  • 默认值:""
  • 功能:只生成匹配正则表达式的接口名称

exclude-regex - 排除特定接口

  • 默认值:""
  • 功能:与include-regex配合使用,进一步筛选要生成的Mock

2. 文件输出控制参数

filename - 自定义文件名模板

  • 默认值:"mock_{{.InterfaceName}}.go"
  • 支持模板变量:InterfaceNamePackageName

dir - 输出目录配置

  • 默认值:"mocks/{{.PackagePath}}"
  • 示例:"{{.InterfaceDir}}" - 将Mock生成在接口文件旁边

inpackage - 同包生成模式

  • 默认值:false
  • 功能:将Mock生成在与原始接口相同的包中

3. Mock结构体配置

mockname - Mock结构体命名

  • 默认值:"Mock{{.InterfaceName}}"
  • 优势:避免循环导入问题

4. 包管理相关参数

outpkg - 输出包名

  • 默认值:"{{.PackageName}}"
  • 用途:控制生成的Mock文件的包名

packages - 包级配置(新版本推荐)

  • 特点:提供5倍性能提升,更细粒度的控制

5. 高级功能参数

with-expecter - Expecter结构体生成

  • 默认值:true
  • 功能:生成类型安全的期望方法

replace-type - 类型替换

  • 功能:解决类型别名指向内部包的问题
  • 格式:originalPackagePath.originalTypeName=newPackageName:newPackagePath.newTypeName

6. 构建和兼容性参数

mock-build-tags - 构建标签

  • 默认值:""
  • 用途:为生成的Mock设置构建约束

boilerplate-file - 文件头模板

  • 功能:在所有生成的Mock文件顶部添加自定义内容(如许可证)

7. 调试和测试参数

dry-run - 预览模式

  • 默认值:false
  • 功能:显示将要执行的操作但不实际执行

🚀 实用配置示例

智能包扫描配置

packages:
  github.com/user/project:
    config:
      recursive: true
      with-expecter: true

这个配置让mockery自动发现项目中的所有子包,无需手动指定每个包路径。

接口过滤配置

packages:
  github.com/user/project:
    config:
      recursive: true
      include-regex: ".*Client"

只生成以"Client"结尾的接口Mock,非常适合大型项目。

类型替换实战

当遇到类型别名指向内部包的问题时:

replace-type: 
  - "cloud.google.com/go/internal/pubsub=cloud.google.com/go/pubsub"

这个配置解决了Google Cloud PubSub等常见库的Mock生成问题。

💡 最佳实践建议

  1. 优先使用packages配置 - 新版本提供更好的性能和功能
  2. 启用with-expecter - 获得类型安全的测试体验
  3. 合理使用模板变量 - 灵活控制Mock文件的命名和位置

🎉 总结

通过合理配置mockery的20个参数,你可以:

  • 大幅提升Mock生成速度
  • 实现更精确的接口过滤
  • 解决复杂的类型依赖问题
  • 获得更智能的测试体验

掌握这些配置技巧,你的Go单元测试将变得更加高效和可靠!

Mockery配置示例

【免费下载链接】mockery A mock code autogenerator for Go 【免费下载链接】mockery 项目地址: https://gitcode.com/gh_mirrors/moc/mockery

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值