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

Go 语言:在包范围内使用包名(示例)

Go 语言:在包范围内使用包名(示例)

Go
素胚勾勒不出你 2021-08-23 15:33:42
我目前正在编写ExampleFuncs我的 Go 测试脚本。例如:package helloimport "testing"func ExampleGetSymbol() {    data := GetSymbol("AAPL")    fmt.Println(len(data.Data))    // Output: 21}现在,这给了我两个好处:当我运行时执行这个例子go test和它出现在 godoc 文档下 func GetSymbol有一件事困扰着我,我想知道我是否应该对此做些什么。对于试图从此示例中学习的用户,该行data := GetSymbol("AAPL")实际上应该是data := hello.GetSymbol("AAPL")但由于测试与包在同一范围内,我不能像这样使用它。所以我想我的问题的提炼版本是:有没有办法package.field在包范围内允许符号?
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

与其把它放在包里hello,不如把它放在包里hello_test。您可以在同一目录中同时拥有hellohello_test包,并且它允许(要求)您按照建议的方式创建示例。

顺便说一句,这也会导致您仅将测试用例(至少对于此文件)写入公共 API。这通常是一件好事。但是如果您需要写入私有函数,您可以将您的测试拆分为单独的文件,一些在hello包中,一些在hello_test.

顺便说一句,这方面的文档有点被埋没了。您可以在go cmd 文档的“测试包”部分找到它。


查看完整回答
反对 回复 2021-08-23
  • 1 回答
  • 0 关注
  • 232 浏览
慕课专栏
更多

添加回答

举报

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