我有一个包含多个文件的 Go 包。从 Go 标准开始,我正在为包中的每个源文件创建一个关联的测试文件。
就我而言,不同的测试使用相同的测试帮助功能。我不希望这些函数出现在包源文件中,因为它仅用于测试目的。我还想避免在每个测试文件中复制此代码。
我应该把所有测试源文件之间共享的代码放在哪里,而不是包的一部分?
您只需将其放入任何测试文件中即可。使用相同包子句的测试文件属于同一个测试包,可以相互引用彼此的导出和未导出标识符,无需任何import声明。
另请注意,您不需要_test.go为每个文件创建单独的.go文件;并且您可以拥有一个xx_test.go文件而xx.go包中没有“匹配”文件。
例如,如果您正在编写 package a,则具有以下文件:
a/
a.go
b.go
a_test.go
b_test.go
Run Code Online (Sandbox Code Playgroud)
对于黑盒测试,您可以package a_test在a_test.goand 中使用package 子句b_test.go。有一个func util()in 文件a_test.go,你也可以使用它b_test.go。
如果您正在编写白盒测试,您将package a在测试文件中使用,同样,您可以引用在a_test.gofrom 中声明的任何标识符b_test.go(反之亦然)而无需任何导入。
但是请注意,如果包子句 ina_test.go和b_test.go不匹配(例如a_test.gousespackage a和b_test.gouses package a_test),那么它们将属于不同的测试包,然后您不能使用彼此声明的标识符。
| 归档时间: |
|
| 查看次数: |
2702 次 |
| 最近记录: |