上QQ阅读APP看书,第一时间看更新
第40条
理解包内测试与包外测试的差别
Go语言在工具链和标准库中提供对测试的原生支持,这算是Go语言在工程实践方面的一个创新,也是Go相较于其他主流语言的一个突出亮点。
在Go中我们针对包编写测试代码。测试代码与包代码放在同一个包目录下,并且Go要求所有测试代码都存放在以*_test.go结尾的文件中。这使Go开发人员一眼就能分辨出哪些文件存放的是包代码,哪些文件存放的是针对该包的测试代码。
go test命令也是通过同样的方式将包代码和包测试代码区分开的。go test将所有包目录下的*_test.go文件编译成一个临时二进制文件(可以通过go test -c显式编译出该文件),并执行该文件,后者将执行各个测试源文件中名字格式为TestXxx的函数所代表的测试用例并输出测试执行结果。