Nim*_*iat 5 git tdd unit-testing mocking
提交没人使用的代码是一个坏主意,因为审查者很难理解为什么要写它,也很难知道代码是否正确。
正如我在 TDD 中编写的那样,在编写代码逻辑之前,我编写了单元测试。
测试有时依赖于新的模拟,它的第一个(也是唯一的)用途是测试。应用上述原则,我不想自己提交模拟。因此,我最终在同一次提交中提交了单元测试和模拟。
这使得提交相当长,并且模拟并不像是其中的一部分。将它们放在不同的提交中会好得多(甚至可能让不同的开发人员对其进行审查,后者更了解模拟代码)。
我知道这个设计问题可能是一个品味问题,但我是 TDD 的新手,并且觉得可能有一个解决方案比另一个更正确。
任何输入将不胜感激。
关于 Git 提交的最重要的政策是每次提交都应该通过构建。有人可能会说,对于 TDD,提交红/绿/重构周期的每一步都是有意义的,如下所示:
但是,如果您提交为红色,则您的提交将导致构建失败,这将充分利用例如git bisect
不可能。我认为如果您愿意的话,可以在绿色阶段和重构阶段进行单独的提交,但是如果您可以将每个总体更改保持在较小的范围内,那么这并不是最重要的。
如果您可以在添加测试之前添加模拟,并且构建仍然通过,我认为这是可以接受的做法。这不是我自己会做的事情,但我不认为这会成为一个问题。
通常,审阅者会查看多个提交的组合差异,因此这不太可能令人困惑。
尽管如此,对于 TDD,最常见的过程是首先编写测试,然后编写足够的代码以使测试通过。如果其中包括模拟,则将它们添加为对测试的反应。
如果您发现它导致了一些粗粒度的提交,那么这就是 TDD 流程为您提供反馈。反馈并不是说您的流程应用一定是错误的,而是您可能会从重新考虑 API 设计中受益。
归档时间: |
|
查看次数: |
174 次 |
最近记录: |