测试
软件测试一个非常大的主题,而且它不能被一本书中的一章的单独一节所涵盖。因此,这简要的部分将介绍尽可能多的实用信息。
Go 允许您为您的代码编写测试来发现缺陷。严格讲,这节是关于自动测试的,包含写额外代码来验证真实代码;即产品代码,是否按预期运行。因此,一个测试函数的结果是不是 PASS
就是 FAIL
。很快您将看到它是怎么运作的。
虽然 Go 的测试方法起初可能看起来很简单,特别是如果您将它与其他编程语言的测试实践进行比较,它非常高效和有效,因为它不需要占用开发者的太多时间。
Go 遵循有关测试的某些约定。首先,测试函数应该写在以 _test.go
结尾的 Go 源码中。因此,如果您有一个名为 aGoPackage.go
的包,那么您的测试代码应该放在名为 aGoPackage_test.go
的文件中。测试函数以 Test
开头,并检查生产包的功能行为的正确性。
最后,您需要引入 testing
标准包以便 go test
子命令正确运行。如您马上看到的,这个引入要求也适用于另外两种情况。
一旦测试代码正确,go test
子命令为您做了所有脏活,包括为特定函数扫描所有 *_test.go
文件,生成一个临时的正确 main
包来调用这些特定函数,获得结果并产生最终输出。
总是把测试代码放在另一个源文件。没必要创建一个难以阅读和维护的庞大源文件。