如何在持续集成中处理TDD?

4
假设你正在实现包含各种新功能并增加代码复杂性的用户故事。现有代码已经相当完备,你刚刚决定接口。你开始通过测试实现功能。
现在,你有了基于要求的相当复杂的测试用例,但是实现距离你能够提交到SCM完全工作的代码还有很长的路要走,并且许多测试失败了(正常情况下应该如此)。
有一个假设,在持续集成中,如果可能的话,所有构建都应该是绿色的,因此你不应该提交,因为这样会破坏构建。但是你也不应该"Go dark"并保留这么多代码给自己……
在这种情况下,建议采取什么程序?
2个回答

6
不要事先决定所有接口。按照典型的TDD节奏逐步开发:编写测试;使测试通过;重构。这样可以保持一切良好,进度条将始终为绿色,并且您可以放心地提交代码而不必担心会破坏构建。
虽然需要不同的编码风格,但您最终会习惯这种节奏。

我认为开始黑客行动而没有进行任何概念分析是一件坏事。这会导致代码难以维护,有时也不太合乎逻辑。想象一下,当团队成员的技能水平不完全相等,但有相当数量的初学者时,你并不处于理想状态。 - Petr Macek
Petr,我的意思不是让人们在没有任何概念分析的情况下去黑客。分析和代码的目标仍然存在。只是暂时不要决定形式;-)。我对初学者的经验是,当你告诉他们写测试时,他们会产生更好的代码。 - Hristo Deshev

1

如果你知道某些测试因为当前缺少功能而无法通过,那么跳过这些测试怎么样?

确保明显地表明你正在跳过这些测试!就像他们在澳大利亚所说的那样,真的要让它尖叫起来! (-:

随着你添加功能,启用相关的测试并保持“绿色条”的状态!

这里有另一篇伟大的文章,来自《实用编程人员》杂志,介绍如何让其他人看到窗户坏了。

希望对你有所帮助!

祝好,

罗布


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接