如果有人读过詹姆斯·纽科克的书,《Test-Driven Development for in Microsoft.Net》,那么堆栈示例就很完美了。它是一个小型类,有可管理的测试/需求列表,创建过程能够表现出TDD的价值(在我看来)。
我不想使用Stack示例或类似的数据结构(队列、列表等),因为担心会侵犯Newkirk的作品。
因此,我正在寻找一些好的想法来创建一个样例类。
谢谢。
如何使用Kent Beck的Money示例的第1部分呢?它一开始非常简单,但当你需要加上两种不同的货币时,TDD突然向你展示了前期设计或YAGNI(你不需要它)的错误性。
另一个很好的例子是Uncle Bob的保龄球计分TDD示例。我认为这是一个很好的例子,说明了TDD叙述如何带领你找到一个干净的解决方案,而这个方案可能通过前期设计是无法明确实现的。
为了使演示更加精彩,你可以在一开始挑战观众,让他们使用任何他们认为合适的方法来设计这两种情景。然后你将展示使用TDD的方式来设计它们。
TDD给我的真正惊喜是Beck删除了Money的两个子类,但测试仍然可以通过。这不是一个微不足道的行动;这个人删除了两个类!只有两种方法才能找到这样做的信心:
1)聚集所有代码库中的高级玩家并运行场景,随后进行广泛的跟进以确认其有效性
2)TDD
= D
我会尝试从一个知名领域中找到一些小的东西。最近我做了一个关于基于ASPNET.MVC的BDD/TDD的演示。其中包括一个控制器、一个操作和一个视图模型。这也给了我介绍依赖容器和模拟框架的机会。
怎么样,来一个简单的数学类,包括加法、减法、乘法等等?
来自TDD/极限编程/敏捷社区的另一个经典例子是保龄球游戏示例;我记得它曾在Beck和Martin的书中使用过,也多次在xprogramming.com上用于TDD中不同技术的示例和探索。
冒险一试,听取观众的要求。 :)