跳转至

测试策略

这个项目的测试策略和很多普通项目不一样。
它的目标不是“把覆盖率数字堆高”,而是证明 .pygit 的状态变化在关键路径上真的可靠。

为什么这个项目不能只测 happy path

Git 复现项目里很多命令都不是纯函数。它们会:

  • 写磁盘;
  • 改对象库;
  • 改 index;
  • 改 refs;
  • 删文件;
  • 重写工作区。

因此,一个看似成功的命令并不说明系统没问题。
真正要测的是:

  • 成功路径;
  • 失败路径;
  • 失败后仓库有没有保持一致。

为什么强调真实测试

这个项目要求用真实临时目录、真实 .pygit、真实对象文件、真实 index 和真实工作区文件来测。

原因是它声称实现的就是这些真实东西。
如果把这些核心行为都抽成 mock,再让测试通过,那并不能证明仓库真的工作。

测试应覆盖哪些层

测试至少应覆盖:

  • 对象库;
  • Index V2;
  • refs;
  • 管道命令;
  • 瓷器命令;
  • merge;
  • pack;
  • remote;
  • 服务端;
  • 异常与损坏场景。

只有这样,项目才能既验证局部模块,也验证完整链路。