我需要就测试驱动开发进行简短的演示(2-4 小时),并且需要提出一个可以使用 TDD 方法构建的小类(class)。类(class)规模必须相对较小,但要“推销”TDD 的概念。
如果有人读过 James Newkirk 的书《Microsoft.Net 中的测试驱动开发》,那么 Stack 示例就是完美的。这是一个小类,有一个可管理的测试/需求列表,并且创建过程以 TDD 为卖点(恕我直言)。
我不想使用 Stack 示例或类似的数据结构(队列、列表等),因为担心会影响 Newkirk 的工作。
所以,我正在为示例类寻找一些好主意。
谢谢。
请您参考如下方法:
使用 1st section of Kent Beck's Money example 怎么样? 。一开始非常简单,但是当您添加两种不同的货币时,TDD 突然向您展示了预先设计或 YAGNI 的虚假性(您不会需要它)。
另一个很好的例子是鲍勃叔叔的 bowling score TDD example 。我认为这是一个很好的例子,说明 TDD 叙述如何为您带来一个干净的解决方案,而通过预先设计明确无法实现该解决方案。
为了使其成为一次真正令人兴奋的演示,您可以预先挑战观众使用他们认为合适的任何方法来设计两个场景。然后您将展示设计它们的 TDD 方法。
对于我来说,TDD 真正的 WTF 时刻是 Beck 删除了 Money 的两个子类,并且测试成功了。这不是一个微不足道的举动;这个人删除了两个类(class)!只有通过两种方法才能找到做这样的事情的信心。
1) 将所有高级参与者聚集在代码库中并运行场景,然后进行广泛的跟进以确认其有效
2)TDD
=D