在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《为什么mockgen会生成文件中的所有接口?》,聊聊,希望可以帮助到正在努力赚钱的你。
问题内容我有一个带有接口的包
package worker
import "context"
//go:generate mockgen -source interfaces.go -destination mock-interfaces.go -package worker Doer
type (
Doer interface {
Do(ctx context.Context) error
}
LazyThing interface {
Rest(ctx context.Context) error
}
)
我假设仅为 doer
接口生成模拟类。但我总是受到嘲笑。
如何限制已处理接口的列表?
正确答案
在命令中使用 -source interfaces.go
时,您将启用生成器的源模式。
您需要提供从完全限定包名称导入符号 doer
的表单
类似于:
//go:generate mockgen -package worker -destination mock-interfaces.go github.com/yourhandle/worker Doer
然后它应该只从包中选择该符号,而不是全部。
今天关于《为什么mockgen会生成文件中的所有接口?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!