Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了单元测试 – 在Golang中测试的正确包命名大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经看到Go中的几个不同的测试包命名策略,想知道每个的利弊,@R_112_10675@用哪个。

策略1:

文件名:github.com/user/MyFunc.go

package MyFunc

测试文件名:github.com/user/MyFunc_test.go

package MyFunc

参见bzip2为例。

策略2:

文件名:github.com/user/MyFunc.go

package MyFunc

测试文件名:github.com/user/MyFunc_test.go

package MyFunc_test

import (
    "github.com/user/MyFunc"
)

参见wire为例。

策略3:

文件名:github.com/user/MyFunc.go

package MyFunc

测试文件名:github.com/user/MyFunc_test.go

package MyFunc_test

import (
    . "MyFunc"
)

参见strings为例。

Go标准库似乎使用策略1和2的混合。@R_112_10675@用哪三个?这是一个疼痛附加包* _test到我的测试包,因为它意味着我不能测试我的包私有方法,但也许有一个隐藏的优势,我不知道?

您列出的三种策略的根本区别是,测试代码是否与测试下的代码在同一个包中。决定在测试文件中使用软件包MyFunc或软件包MyFunc_test取决于您是要执行 white-boxblack-box测试。

项目中使用这两种方法没有什么不妥。例如,你可以有MyFunc_whiteBox_test.go和Myfunx_blackBox_test.go。

测试代码包比较

>黑盒测试:使用包MyFunc_test,这将确保你只使exported identifiers
>白盒测试:使用包MyFunc,以便您可以访问非导出的标识符。适用于需要访问非导出变量,函数方法的单元测试。

问题中列出的策略的比较

>策略1:文件MyFunc_test.go使用package MyFunc在这种情况下,MyFunc_test.go中的测试代码将与MyFunc.go中测试的代码在同一个包中,在本示例中为MyFunc
>策略2:文件MyFunc_test.go使用包MyFunc_test – 在这种情况下,MyFunc_test.go中的测试代码将被编译为一个单独的包,然后链接和运行与主测试二进制。 [源:test.go代码中的58-59行]>策略3:文件MyFunc_test.go使用包MyFunc_test,但使用点符号导入MyFunc – 这是策略2的变体,但使用点符号导入MyFunc

大佬总结

以上是大佬教程为你收集整理的单元测试 – 在Golang中测试的正确包命名全部内容,希望文章能够帮你解决单元测试 – 在Golang中测试的正确包命名所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。