主要观点:近期在静态站点生成器Zine中添加了快照测试支持,分享如何为项目设置类似的快照测试。快照测试基于两个原则,关键在于自动生成快照,能减少手动更新工作。在 Zig 的test {}
定义中,可使用库直接修改包含测试的 Zig 源代码来更新快照。Zine 以文件为输入/输出的自然单元,测试更像由构建系统编排的集成测试,而非 Zig 文件中的单元测试。
关键信息:
- 快照测试的两个原则及“已知良好值”的概念。
- Zig 中通过库更新快照及相关示例。
- Zine 的测试设置,如
tests/
下的网站及对应的快照目录结构。 - 使用
zig build test
运行测试,通过git diff
查看输出变化。 build.zig
中的代码实现自动运行git diff
和git add
。- 展示修改 Zine 后测试的输出及处理方式。
- 强调审计 diff 的难易程度与快照测试有效性成正比。
重要细节:
- 示例目录结构中包含单个测试网站的各种文件。
test_step
、diff
、git_add
等在构建系统中的使用及依赖关系。- 不同命令的参数及作用,如
"git diff --cached"
等。 - 测试过程中出现的不同情况及处理,如空 diff 表示成功,非空 diff 表示测试失败等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。