程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 Go 语言进行测试的正确包命名大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 Go 语言进行测试的正确包命名?

开发过程中遇到使用 Go 语言进行测试的正确包命名的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 Go 语言进行测试的正确包命名的解决方法建议,希望对你解决使用 Go 语言进行测试的正确包命名有所启发或帮助;

您列出的三种策略之间的根本区别在于测试代码是否与被测代码在同一个包中。在使用的决定package MyFuncpackage MyFunc_test在测试文件取决于你是否要执行白盒或黑盒测试。

项目中同时使用这两种方法并没有错。例如,您可以拥有MyFunc_whiteBox_test.go和@H_460_3@myfunx_blackBox_test.go。

测试代码包比较

  • 使用package MyFunc_test,这将确保您只使用导出的标识符。
  • 使用package MyFunc便您可以访问非导出的标识符。适用于需要访问非导出变量、函数和方法的单元测试。

问题中列出的策略的比较

  • 文件MyFunc_test.go使用package MyFunc- 在这种情况下, 中的测试代码MyFunc_test.go将与 中正在测试的代码位于同一包中MyFunc.goMyFunc在本示例中。
  • 文件MyFunc_test.go使用package MyFunc_test——在这种情况下,MyFunc_test.go“将作为单独的包编译,然后与主测试二进制文件链接并运行”中的测试代码。[来源:test.go源代码中的第 58-59 行]
  • 文件MyFunc_test.go使用package MyFunc_testMyFunc使用点表示法导入- 这是策略 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,请注明来意。