为了账号安全,请及时绑定邮箱和手机立即绑定

使用 gofmt 生成,替换变量值

使用 gofmt 生成,替换变量值

Go
鸿蒙传说 2021-09-10 10:22:05
在发布“生成”工具打开了一大堆令人兴奋的可能性。我一直在努力让我的测试变得更好。我有一个查询外部 API 的函数,该 API 的位置在全局变量中定义。难题之一是用“生成时间”确定的值替换该值。我有://go:generate gofmt -w -r "var apiUrl = a -> var apiUrl = \"http://example.com\"" $GOFILE运行 go generate 然后出现错误:parsing pattern var apiUrl = a  at 1:1: expected operand, found 'var'像这样使用占位符不是一种选择:gofmt -r 'API_GOES_HERE -> "http://example.com"' -w那是因为,当我编译生产代码时,源代码会被重写,因此后续的测试编译不能再替换占位符(它已经被替换了)。我意识到我有点滥用gofmt,但我不想回到sed. 什么是有效的go:generate陈述?
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

在您的测试文件中,api_test.go添加一个生成命令,该命令生成另一个api_endpoint_test.go位于同一包中的文件,该文件仅定义或初始化(使用init函数)您需要的变量。该变量值仅在测试期间使用。


作为记录,我不太明白您为什么要尝试这样做,而不是在运行时初始化变量或使用一些传统的配置方法。


查看完整回答
反对 回复 2021-09-10
  • 2 回答
  • 0 关注
  • 274 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信