代码之家  ›  专栏  ›  技术社区  ›  SergioL

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

tdd
  •  46
  • SergioL  · 技术社区  · 15 年前

    我需要就测试驱动开发做一个简短的演示(2-4小时),并且需要想出一个使用TDD方法构建的小类。这个类必须相对较小,但“出售”TDD的概念。

    如果有人读过JamesNewkirk的书,即在Microsoft.NET中的测试驱动开发,那么堆栈示例就是完美的。它是一个小类,具有可管理的测试/需求列表,并且创建过程销售TDD(IMHO)。

    我不想使用堆栈示例或类似的数据结构(队列、列表等),以免影响Newkirk的工作。

    所以,我在为一个示例类寻找一些好主意。

    谢谢。

    14 回复  |  直到 6 年前
        1
  •  25
  •   Noel Kennedy    15 年前

    用这个怎么样 1st section of Kent Beck's Money example .开始的时候很简单,但是当你加上两种不同的货币时,TDD突然向你展示了前端设计的不确定性,或者雅格尼(你不需要它)。

    另一个很好的例子是鲍勃叔叔的 bowling score TDD example . 我认为这是一个很好的例子,说明TDD的叙述如何让你找到一个干净的解决方案 明确地 通过正面设计无法接近。

    为了使这场演讲真正令人兴奋,你可以预先向观众提出挑战,让他们用他们认为合适的任何方法设计这两个场景。然后您将展示TDD设计它们的方法。

    对于我来说,与TDD的真正的WTF时刻是当Beck删除了两个子类货币,并且测试工作。这不是一个微不足道的行动;这个人删除了两个班!做这种事的信心只有两种方式。

    1)将所有高级参与者聚集在一个代码库中并运行场景,然后进行广泛的后续操作,以确认其工作正常。

    2)TDD

    = D

        2
  •  8
  •   Yishai    15 年前

    如果您有时间,我将选择一个例子,它具有某种类型的外部依赖性,将在测试中抽象出来。数据库、对GUI的调用、对远程系统的调用等。

    原因是TDD的其中一个模块似乎过于独立。”当然,当所有东西都是独立的单元时,您可以进行单元测试,但是当我有15个系统要集成时,有什么意义呢?”样的东西。

    最后,我还将至少展示一个迁移现有类以将其纳入TDD的示例(看看迈克尔·费瑟的书《如何有效地使用遗留代码》。不要以这一点为例,但很有可能你的听众会考虑如何迁移他们那天早上写的课程,没有理由让这种情绪变得“难以启齿”。

        3
  •  7
  •   philant    15 年前

    TDD problems 有一系列问题,从简单到不简单。

    有些测试还没有解决方案。

        4
  •  3
  •   Bill the Lizard    15 年前

    如果你从一本书中得到了一个完美的例子,那么你应该使用它并推广这本书。没有作者会反对。

    除此之外,几年前我参加了一个TDD演示,这个示例是一个简单的计算器,它运行得很好。

        5
  •  3
  •   Cœur Gustavo Armenta    6 年前

    三个我喜欢的,大致上是难度增加的顺序:

    如果我有半个小时的时间,我会做射程;90分钟,可能是自然种类;更多:蛇。不过,这取决于观众。

        6
  •  2
  •   Thomas Eyde    15 年前

    我会设法从一个著名的领域找到一些小东西。我最近做了一个基于aspnet.mvc的关于bdd/tdd的演示。其中包括一个控制器、一个操作和一个视图模型。这也给了我引入依赖容器和模拟框架的机会。

        7
  •  1
  •   Henrik Paul    15 年前

    一个简单的数学课,加、减、乘等等怎么样?

        8
  •  1
  •   Tetsujin no Oni    15 年前

    来自TDD/Extreme/Agile社区的另一个经典例子是保龄球游戏实例;我记得它在Beck和Martin中都使用过,在xprogramming.com上也多次使用过,用于TDD中不同技术的示例和探索。

        9
  •  1
  •   JP Alioto    15 年前

    冒险出去,接受观众的要求。:)

        10
  •  1
  •   Stephan Eggermont    15 年前

    如果目标是销售TDD,那么您还需要显示一个大型测试库的小型重构。很容易让它与小样本一起工作,现在大多数开发人员都会购买。关于可伸缩性还有很多疑问。一个前卫的主题是如何处理大量遗留(没有单元测试)代码。

    一个简单的纸牌游戏是很好的,特别是你可以提供一些结果的视觉表示。

    我假设您将使用编码Dojo作为表示形式,是吗?没有花哨的PowerPoint。如果公众不是程序员,请使用Excel示例

        11
  •  1
  •   o0omycomputero0o    11 年前

    敏捷开发的基本技能——Ka-iok-Tong。这本书是关于敏捷的,但是包含了几个关于测试,特别是TDD的章节。作者从需求的角度对TDD进行了编码解释,并对如何解决TDD中的问题进行了思考。你可以找到这本书 here . 要更新更多关于概念和现代工具的信息,您可以 here

        12
  •  0
  •   Lieven Keersmaekers    15 年前

    我建议你自己买这本书 Test driven design by example 来自肯特·贝克。

    这本书几乎完全集中在通过TDD构建一个类上。

        13
  •  0
  •   David Plumpton    15 年前

    罗马数字。对源代码的非注释行进行计数。河内的塔。有很多想法。

        14
  •  0
  •   Mukesh Chauhan    11 年前

    如果目标受众在TDD中是幼稚的,那么我建议使用以下示例。它确实能让您很好地理解TDD概念和实现。

    1. Bank Account

    2. Bowling Game