我需要对测试驱动开发做一个简短的演示(2-4个小时),并且需要想出一个我可以使用TDD方法构建的小类。这个类必须相对较小,但“推销”TDD的概念。
如果有人读过James Newkirk的书“Microsoft.Net中的测试驱动开发”,那么Stack示例就是完美的。它是一个小类,有一个可管理的测试/需求列表,并且创建过程出售测试驱动程序( TDD,IMHO)。
我不想使用Stack示例或类似的数据结构(队列、列表等),以免影响Newkirk的工作。
所以,我正在为一个样本类寻找一些好的想法。
谢谢。
发布于 2009-04-24 19:22:20
使用1st section of Kent Beck's Money example怎么样?它开始时非常简单,但是当你添加两种不同的货币时,TDD突然向你展示了预先设计的错误,或者YAGNI (你不需要它)。
另一个很好的例子是鲍勃叔叔的bowling score TDD example。我认为这是一个很好的例子,说明了TDD叙述如何将您带到一个干净的解决方案,而这个解决方案显然是无法通过前期设计实现的。
要使它成为一个真正令人兴奋的演示文稿,你可以挑战观众,让他们使用他们认为合适的任何方法来设计这两个场景。然后,您将展示设计它们的TDD方法。
对我来说,使用TDD的真正的WTF时刻是Beck删除了两个Money子类,测试起作用了。这不是一个微不足道的动作;这个人删除了两个类!只有通过两种方式才能找到做这样事情的信心。
1)收集代码库中的所有高级玩家并运行场景,然后进行广泛的跟踪以确认其工作
2) TDD
=D
发布于 2009-04-24 19:24:32
如果你有时间,我会选择一个带有某种外部依赖的例子,它将在测试中被抽象出来。数据库、对GUI的调用、对远程系统的调用等。
原因是TDD的其中一个块是示例看起来太自包含了。“当然,当一切都是一个独立的单元时,你可以进行单元测试,但是当我有15个系统要集成时,还有什么意义呢?”差不多吧。
我还将在最后至少展示一个迁移现有类以将其置于TDD下的示例(请参阅Michael Feather的书Working Effectively with Legacy Code for how- to )。不要纠结于此作为一个例子,但您的听众很可能会考虑如何迁移他们当天早上编写的类,没有理由让这个问题恶化为“不可提及的”。
发布于 2009-04-24 19:25:13
TDD problems有一系列的问题,从简单到不太简单。
有些人有一个测试列表,可以从没有解决方案开始。
https://stackoverflow.com/questions/787172
复制相似问题