反模式:必须至少有两个关键元素来正式区分实际的反模式与简单的坏习惯、坏实践或坏想法:

一些重复的行为模式、过程或结构,最初看起来是有益的,但最终产生的坏结果多于有益的结果 一个重构的解决方案,清楚地记录,在实际实践中证明,并可重复。

为您在“野外”中见过太多次的TDD反模式投票。 James Carr的博客文章和testdrivendevelopment yahoogroup的相关讨论

如果你找到了一个“未命名的”…也要贴出来。请每个反模式一篇文章,让投票有意义。

我的既得利益是找到前n个子集,这样我就可以在不久的将来在午餐会上讨论它们。


当前回答

二等公民——测试代码不像生产代码那样容易重构,包含大量重复的代码,使得维护测试变得困难。

其他回答

图灵测试

由一些昂贵的工具自动生成的测试用例,该工具使用一些过于聪明的数据流分析,从被测类中收集了许多断言。让开发人员产生一种错误的信心,认为他们的代码经过了良好的测试,使他们免于设计和维护高质量测试的责任。如果机器可以为你编写测试,为什么它不能抽出手指来自己编写应用程序呢!

你好笨。——世界上最聪明的电脑卖给新学徒(出自Amiga漫画)。

母鸡妈妈——弗兰克·卡弗 一个通用的设置,它所做的远远超过实际测试用例所需要的。例如,创建各种复杂的数据结构,其中填充了明显重要和唯一的值,而测试只断言存在或不存在某些东西。 高级症状:不恰当地共享Fixture

我不知道它能做什么…以防万一,我还是加进去了。——匿名开发者

搭便车/搭便车——詹姆斯·卡尔,蒂姆·奥廷格 与其编写一个新的测试用例方法来测试另一个/不同的特性/功能,不如在一个现有的测试用例中使用一个新的断言(及其相应的操作,例如来自AAA的Act步骤)。

40英尺杆子测试

由于害怕与要测试的类过于接近,这些测试与要测试的逻辑隔着无数抽象层和数千行代码。因此,它们非常脆弱,容易受到各种副作用的影响,这些副作用发生在往返感兴趣的班级的史诗般的旅程中。

的嘲弄 有时候嘲讽是件好事,而且很方便。但有时开发人员可能会迷失自我,在他们努力模拟没有测试的东西的过程中。在这种情况下,一个单元测试包含了如此多的模拟、存根和/或伪造,以至于被测试的系统根本就没有被测试,相反,从模拟返回的数据才是被测试的内容。

来源:James Carr的帖子。