大佬教程收集整理的这篇文章主要介绍了使用 Go 语言进行测试的正确包命名,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
您列出的三种策略之间的根本区别在于测试代码是否与被测代码在同一个包中。在使用的决定package MyFunc
或package MyFunc_test
在测试文件取决于你是否要执行白盒或黑盒测试。
在项目中同时使用这两种方法并没有错。例如,您可以拥有MyFunc_whiteBox_test.go
和@H_460_3@myfunx_blackBox_test.go。
MyFunc_test.go
使用package MyFunc
- 在这种情况下, 中的测试代码MyFunc_test.go
将与 中正在测试的代码位于同一包中MyFunc.go
,MyFunc
在本示例中。MyFunc_test.go
使用package MyFunc_test
——在这种情况下,MyFunc_test.go
“将作为单独的包编译,然后与主测试二进制文件链接并运行”中的测试代码。[来源:test.go源代码中的第 58-59 行]MyFunc_test.go
使用package MyFunc_test
但MyFunc
使用点表示法导入- 这是策略 2 的变体,但使用点表示法导入MyFunc
.我在 Go 中看到了几种不同的测试包命名策略,想知道每种策略的优缺点以及@R_11_10675@用哪一种。
策略一:
文件名:github.com/user/MyFunc.go
package MyFunc
测试文件名:github.com/user/MyFunc_test.go
package MyFunc
有关示例,请参见bzip2。
策略二:
文件名:github.com/user/MyFunc.go
package MyFunc
测试文件名:github.com/user/MyFunc_test.go
package MyFunc_test
import (
"github.com/user/MyFunc"
)
策略三:
文件名:github.com/user/MyFunc.go
package MyFunc
测试文件名:github.com/user/MyFunc_test.go
package MyFunc_test
import (
. "MyFunc"
)
有关示例,请参见字符串。
Go 标准库似乎混合使用了策略 1 和 2。@R_11_10675@用这三种中的哪一种?附加package *_test
到我的测试包上很痛苦,因为这意味着我无法测试我的包私有方法,但也许有一个我不知道的隐藏优势?
以上是大佬教程为你收集整理的使用 Go 语言进行测试的正确包命名全部内容,希望文章能够帮你解决使用 Go 语言进行测试的正确包命名所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。