首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将用于测试的共享代码放在Go包中的位置?

将用于测试的共享代码放在Go包中的位置?
EN

Stack Overflow用户
提问于 2016-12-03 15:09:22
回答 1查看 4.6K关注 0票数 7

我有一个包含多个文件的Go包。作为Go标准,我正在为包中的每个源文件创建一个相关的测试文件。

在我的例子中,不同的测试使用相同的测试帮助功能。我不希望这些函数出现在包源文件中,因为它只用于测试目的。我还想避免在每个测试文件中复制这段代码。

我应该将这段代码放在所有测试源文件之间,而不是包的一部分之间?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-03 15:40:44

你只要把它放进任何一个测试文件就行了。使用相同package子句的测试文件属于同一个测试包,可以在没有任何import语句的情况下引用彼此导出的和未导出的标识符。

还要注意,您不需要为每个_test.go文件创建一个单独的.go文件;您可以在包中没有“匹配”的xx.go文件的情况下拥有一个xx_test.go文件。

例如,如果您正在编写包a,则具有以下文件:

代码语言:javascript
复制
a/
    a.go
    b.go
    a_test.go
    b_test.go

对于黑匣子测试,您可以在a_test.gob_test.go中使用a_test.go package子句。在文件func util()中有一个a_test.go,您也可以在b_test.go中使用它。

如果您正在编写白盒测试,那么您将在测试文件中使用package a,同样,您可以引用a_test.go中从b_test.go声明的任何标识符(反之亦然),而无需任何导入。

但是请注意,如果a_test.gob_test.go中的包子句不匹配(例如,a_test.go使用package ab_test.go使用package a_test),那么它们将属于不同的测试包,然后不能使用彼此声明的标识符。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40949178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档