这是一个有趣的问题,答案可能比您想象的要容易。
简而言之,编写测试以验证您的假设。无论您是执行实现还是其他程序员都没关系
长答案。
您列出的任何选项在某种程度上都是被动的,需要您迟早返回并重新访问代码(如果有)。
- 注释需要由负责实施的同行阅读和处理。在此期间,您的代码无法编译。如果您在代码存储库中检查这种状态,则持续集成管道将无法正常工作,而且这也是一种不好的做法…… 永远不要签入损坏的代码
- 运行时异常似乎更好,但仍然有毒,因为您的同伴程序员可能会认为实现已经完成而没有检查,因此系统也处于不稳定状态。如果不经常触发该方法,则可能会导致生产代码损坏...做法也很糟糕... 永远不要签入“未实现”异常
- 等待您的程序员对方法或存根的实现也很艰巨。它破坏了您的工作流程以及其他程序员的工作流程。如果他们生病了,在开会的时候,在喝咖啡休息时间,您想花时间等待吗?... 如果您不必等待某人
- 实施缺失的方法绝对是前进的最佳方法。但是,如果您的实现不能满足整个用例,而您的程序员同伴需要修改或更改,会发生什么呢?您和他们如何确保它仍然与您的预期兼容?答案很容易。编写测试以验证,描述和记录您的意图。如果测试失败,很容易注意到。如果需要对该方法进行更改而破坏了您的功能...您会立即看到它。你们都有理由进行交流并决定要做什么。拆分功能?更改您的实现,等等... 切勿检入测试未充分记录的代码
为了达到足够的测试水平,我建议您看一下两个学科。
TDD-测试驱动的开发-这将确保您描述意图并进行充分测试。它还使您可以模拟或伪造尚未实现的方法和类(也可以通过使用接口)。该代码和测试仍将编译,并允许您独立于其他程序员的代码来测试自己的代码。(请参阅:https : //en.wikipedia.org/wiki/Test-driven_development)
ATDD-接受测试驱动的开发-这将创建一个外部循环(围绕TDD循环),可帮助您整体测试功能。这些测试只有在实现了全部功能后才会变成绿色,从而在您的同事完成工作时为您提供自动指示器。如果你问我的话,很整洁。
警告:在您的情况下,我只会编写简单的验收测试,而不会尝试引入过多的业务方面,因为这从一开始就太多了。编写简单的集成测试,将功能所需的系统所有部分放在一起。这就是所需要的
这将使您可以将代码放入持续集成管道中,并产生高度可靠的实现。
如果您想进一步了解该主题,请查看以下链接: