主要观点:
- 测试不是软件开发中最喜欢的部分,单元测试存在诸多问题,如编写过程繁琐、易受内部重构影响等。
- 介绍了 Unison Computing 的转录测试(transcript tests),通过 markdown 文件记录测试步骤和代码,UCM 可直接运行并记录结果,具有确定性、可隔离性、自包含性等优点。
- 讲述了在 CI 中运行转录测试的方法,以及转录测试在其他领域如 Unison Share 中的应用。
- 提出了一个好的转录测试工具的要求,如确定性、隔离性、自包含性等,同时也指出了工作中遇到的困难,如需要自定义工具、设置成本高等。
关键信息:
- 转录测试是一种基于 markdown 的测试方法,使用 UCM 运行并记录结果。
- 在 CI 中通过发现和运行转录文件来进行测试,若输出改变则失败。
- 转录测试在 Unison Share 中用于测试 webapp,通过本地运行和脚本处理来实现。
- 好的转录测试工具应具备确定性、隔离性、自包含性等特点。
- 工作中遇到的困难包括需要自定义工具、设置成本高、服务模拟等。
重要细节:
- 转录文件中的每个块可以是 UCM 命令或文件系统更新,UCM 会根据状态进行类型检查。
- 在 Share 中通过 sed 脚本处理随机值,确保转录的确定性。
- 每个转录在独立环境中运行,数据库重置为已知状态。
- 转录测试需要一定的设置成本,但能提供更高价值的测试。
- 服务模拟通过环境变量或 docker-compose 实现。
- 作者推荐了自己的书籍《Optics by Example》,每笔销售都有助于作者继续创作。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。