什么是演示TDD的好示例类?

Ser*_*ioL 46 tdd

我需要对测试驱动开发进行简短的演示(2-4小时),并且需要提出一个我可以使用TDD方法构建的小类.该课程必须相对较小,但"出售"TDD的概念.

如果有人读过James Newkirk的书,即Microsoft.Net中的测试驱动开发,那么Stack的例子就是完美的.它是一个小类,有一个可管理的测试/要求列表,创建过程销售TDD(恕我直言).

我不想使用Stack示例或类似的数据结构(队列,列表等)来担心影响Newkirk的工作.

所以,我正在为样本课寻找一些好主意.

谢谢.

Noe*_*edy 25

如何使用Kent Beck的Money示例第1部分.它开始非常简单但是当你到达两种不同的货币时,TDD突然向你展示了前期设计的谬误,或YAGNI(你不需要它).

另一个很好的例子是鲍勃叔叔的保龄球得分TDD例子.我认为这是一个很好的例子,说明TDD叙述如何将您带入一个通过前期设计明确无法接受的清洁解决方案.

为了使它成为一个非常令人兴奋的演示文稿,您可以使用他们认为合适的任何方法挑战观众设计这两个场景.然后,您将展示设计它们的TDD方式.

对于我来说,TDD真正的WTF时刻是当Beck删除Money的两个子类时,测试工作正常.这不是一个微不足道的行动; 该男子删除了两个班!做这样的事情的信心只能通过两种手段找到.

1)在代码库中收集所有高级玩家并运行场景,然后进行广泛的跟进以确认其有效

2)TDD

= d

  • 我确实创建了Bob的保龄球得分TDD示例的演练,可以在这里找到https://github.com/santthosh/Bowling,请按照提交进行操作,看看示例是如何工作的 (3认同)

Yis*_*hai 8

如果你有时间,我会选择一个带有某种外部依赖的例子,它将在测试中被抽象出来.数据库,调用GUI,调用远程系统等.

原因是TDD的一个块是示例似乎太自包含了."当然,当一切都是一个独立的单元,你可以进行单元测试,但是当我有15个系统进行集成时,重点是什么?" 之类的事情.

我还至少会在最后展示一个例子(看看Michael Feather的书"如何有效地使用遗留代码进行操作")迁移现有的类以将其置于TDD之下.不要再以此为例,但很可能你的观众将会考虑如何迁移他们当天早上所写的课程,没有理由让那个溃烂的人变得"不可言说".


phi*_*ant 7

TDD问题有一系列问题,从简单到简单.

有些人有一系列测试,从无解决方案开始.