Go语言精进之路:从新手到高手的编程思想、方法和技巧(2)
上QQ阅读APP看书,第一时间看更新

第43条
使用testdata管理测试依赖的外部数据文件

在第41条中,我们提到过测试固件的建立与销毁。测试固件是Go测试执行所需的上下文环境,其中测试依赖的外部数据文件就是一种常见的测试固件(可以理解为静态测试固件,因为无须在测试代码中为其单独编写固件的创建和清理辅助函数)。在一些包含文件I/O的包的测试中,我们经常需要从外部数据文件中加载数据或向外部文件写入结果数据以满足测试固件的需求。

在其他主流编程语言中,如何管理测试依赖的外部数据文件往往是由程序员自行决定的,但Go语言是一门面向软件工程的语言。从工程化的角度出发,Go的设计者们将一些在传统语言中由程序员自身习惯决定的事情一一规范化了,这样可以最大限度地提升程序员间的协作效率。而对测试依赖的外部数据文件的管理就是Go语言在这方面的一个典型例子。在本条中,我们就来看看Go管理测试依赖的外部数据文件所采用的一些惯例和最佳实践。