测试

软件测试一个非常大的主题,而且它不能被一本书中的一章的单独一节所涵盖。因此,这简要的部分将介绍尽可能多的实用信息。

Go 允许您为您的代码编写测试来发现缺陷。严格讲,这节是关于自动测试的,包含写额外代码来验证真实代码;即产品代码,是否按预期运行。因此,一个测试函数的结果是不是 PASS 就是 FAIL。很快您将看到它是怎么运作的。

虽然 Go 的测试方法起初可能看起来很简单,特别是如果您将它与其他编程语言的测试实践进行比较,它非常高效和有效,因为它不需要占用开发者的太多时间。

Go 遵循有关测试的某些约定。首先,测试函数应该写在以 _test.go 结尾的 Go 源码中。因此,如果您有一个名为 aGoPackage.go 的包,那么您的测试代码应该放在名为 aGoPackage_test.go 的文件中。测试函数以 Test开头,并检查生产包的功能行为的正确性。

最后,您需要引入 testing 标准包以便 go test 子命令正确运行。如您马上看到的,这个引入要求也适用于另外两种情况。

一旦测试代码正确,go test 子命令为您做了所有脏活,包括为特定函数扫描所有 *_test.go 文件,生成一个临时的正确 main 包来调用这些特定函数,获得结果并产生最终输出。

总是把测试代码放在另一个源文件。没必要创建一个难以阅读和维护的庞大源文件。