为 Markdown 预览工具编写测试及功能优化
1. 测试策略概述
在测试 Markdown 预览工具时,采用与之前测试待办事项工具不同的方法。之前测试待办事项工具时,由于代码都在 main
函数中无法直接测试,采用了类似集成测试的方式,即编译工具并在测试用例中运行。而对于 Markdown 预览工具,将为每个函数编写单独的单元测试,并使用集成测试来测试 run
函数,因为 run
函数返回的值可用于测试。
有些在 main
函数中的代码,如解析命令行标志的代码,无需编写测试,因为可以假定 Go 团队已经对其进行了测试。同样, saveHTML
函数本质上是 Go 标准库函数的包装器,其行为在集成测试中可以得到保证,所以也无需编写单元测试。
2. 使用黄金文件进行测试
对于需要文件的函数测试,可以使用黄金文件技术。该技术将预期结果保存到文件中,在测试时加载这些文件以验证实际输出。这样的好处是结果可以很复杂,例如整个 HTML 文件,并且可以有多个文件来测试不同的情况。
具体操作步骤如下:
1. 创建测试文件目录 :
$ cd $HOME/pragprog.com/rggo/workingFiles/mdp
$ mkdir testdata
$ cd testdata
- 创建输入