mockery-generate
SKILL.md
Golang Mockery 生成 Skill(mockery-generate)
何时使用
- 为新的或已有的接口(例如
IPackAuthAccountRepo)编写或更新单元测试,需要 Mock 其依赖。 - 重构服务实现导致依赖接口发生变化,需要同步更新 Mock。
- 希望在仓库内收敛 Mock 生成方式,避免手写 mock struct。
行为概要
- 扫描目标接口定义(根据 speckit.implement 或调用方传入的接口名和包路径)。
- 在接口定义上方补充或校验
//go:generate mockery --name=<Interface> --with-expecter=true注释://go:generate mockery --name=IPackAuthAccountRepo --with-expecter=true type IPackAuthAccountRepo interface { // ... } - 在任务总结中提示开发者在本地终端执行:
以生成或更新 Mock 文件。go generate ./... - 在测试代码中,统一使用 mockery 生成的 Mock 类型:
- 从
mocks包导入 Mock 类型(例如domain/dmservice/mocks)。 - 使用
New<Interface>(t)创建 Mock 实例,并通过EXPECT()/AssertExpectations配置与校验调用。 - 不再手写任何实现接口的临时 struct。
- 从
关键约束
- 禁止手写 Mock:生产代码与测试代码中都不允许手写 Mock 结构体或临时 Stub,实现接口的替身必须来自 mockery 生成的代码。
- 统一命令格式:
go:generate注释必须使用mockery --name=<Interface> --with-expecter=true这一形式,必要时由 Skill 自动补齐。 - 目录约定:Mock 文件推荐放在接口所在包的
mocks/子目录中,以避免循环依赖和命名混乱。 - CI 友好:生成或更新 Mock 后应保证静态检查(SatCheck 等)不新增 Error 级别问题。
- 更多细节:完整流程、参数与示例见同目录下的
reference.md。
Weekly Installs
1
Repository
ericoo0/stock-t…platformGitHub Stars
6
First Seen
13 days ago
Security Audits
Installed on
windsurf1
amp1
cline1
opencode1
cursor1
kimi-cli1