测试反模式冰激凌模式的不足

我前段时间写过有关OOP中的反模式的文章 。 现在该写单元测试反模式了,因为它们也存在,并且有很多。 我将尝试在列表中包括我知道的每个示例。 如果您认识其他任何人,请通过请求请求将其添加,或在下面发表评论。 对于每个反模式,如果不是我的,我将尝试提及它的发现位置。 请记住,如果我在某处找到它,并不一定意味着它是在那发明的。 如果发现错误,请发表评论。


杜鹃 1 (又称陌生人3 )。 这是一种测试方法,它位于同一单元测试中,但实际上并不属于该单元测试。

按方法测试 1 。 尽管测试和生产类之间的一对一关系是一个合理的起点,但是测试和生产方法之间的一对一关系几乎总是一个坏主意。

肛门探针 2 。 必须使用不健康的方式执行其测试的测试,例如使用反射读取私有字段。

连体双胞胎 2 。 测试称为单元测试,但实际上是集成测试,因为被测系统和测试之间没有隔离。

幸福的道路 (又名对所有赔率3 ,骗子3的成功)。 这些测试始终走在快乐的道路上(即预期的结果),而无需测试边界和异常。

慢戳 3 。 运行非常慢的单元测试。 当开发人员开始进行测试时,他们有时间去洗手间,抽烟,或者更糟糕的是,在一天结束之前回家进行测试。

巨人 3 。 单元测试尽管可以有效地测试被测试对象,但可以跨越数千行,并且包含许多测试用例。 这可以表明被测系统是上帝对象。

嘲讽 3 。 有时嘲笑可能很好,而且很方便。 但是有时,开发人员可能会迷失自己去模仿未经测试的内容。 在这种情况下,单元测试包含如此多的模拟,存根和/或伪造品,以至于根本没有对被测系统进行测试,而是从模拟返回的数据正在被测试。

督察 3 。 为了达到100%的代码覆盖率而违反封装的单元测试,但是对对象中发生的事情了解得非常多,以至于任何重构的尝试都会破坏现有的测试,并要求任何更改都应反映在单元测试中。

慷慨的剩菜 3 (又名链帮 , 湿地板 )。 一个实例,其中一个单元测试创​​建保留在某处的数据,而另一个测试出于自己的vious回目的重用该数据。 如果“生成器”是后来运行的,或者根本没有运行,则使用该数据的测试将完全失败。

本地英雄 3 (又名“隐藏依赖项”,“操作系统推广者”,“ 观望者” ,“ 环境破坏者” )。 一个测试用例要依赖于特定于其编写的开发环境才能运行。 结果是测试通过了开发箱,但在有人尝试在其他地方运行时失败。

Nitpicker 3 。 单元测试仅在只对其中的一小部分感兴趣时才比较完整的输出,因此测试必须与其他不重要的细节保持一致。

秘密守望者 3 。 乍一看,由于没有断言,因此似乎没有进行任何测试,但正如他们所说,“细节决定成败”。 该测试实际上是在发生事故时依赖于引发异常,并且期望测试框架捕获该异常并将其作为故障报告给用户。

道奇 3 。 单元测试具有许多针对次要(并且可能易于测试)副作用的测试,但从未测试核心所需的行为。 有时,您可能会在与数据库访问相关的测试中发现此问题,该测试中调用了一个方法,然后该测试从数据库中选择并针对结果运行断言。

劳德茅斯 3 。 单元测试(或测试套件),即使通过测试,也会通过诊断消息,日志记录和其他杂项使控制台混乱。

贪婪的守望者 3 。 捕获异常并吞没堆栈跟踪的单元测试,有时将其替换为信息较少的失败消息,但有时甚至只是记录日志(请参阅Loudmouth)并通过测试。

音序器 3 。 单元测试取决于断言期间以相同顺序出现的无序列表中的项目。

枚举器 3 (又名无名测试 )。 单元测试,其中每个测试用例方法名称仅是一个枚举,例如test1test2test3 。 结果,测试用例的意图尚不清楚,唯一可以确定的方法是阅读测试用例代码并祈求清晰。

Free Ride 3 (又名Piggyback )。 与其编写新的测试用例方法来测试另一个功能,不如在现有的测试用例中使用新的断言。

设置 3 过多 (又名Hen母亲 )。 为了开始测试,需要进行大量工作才能进行的测试。 有时,使用数百行代码来设置一个测试的环境,其中涉及多个对象,由于所有设置的“噪音”,因此很难真正确定要测试的内容。

线打手 。 乍一看,这些测试涵盖了所有内容,并且代码覆盖率工具可以100%确认它,但实际上,这些测试只是对代码进行了编码,而没有进行任何输出分析。

四十英尺杆测试 ( 请参阅 )。 由于这些测试过于接近他们要测试的类,因此它们之间的距离很远,被无数的抽象层和他们要检查的逻辑中的数千行代码分隔开。

有用的链接:

  1. Spock: Rob Fletcher的作品
  2. Boni Garcia的JUnit 5掌握软件测试
  3. TDD反模式 (James Carr)

翻译自: https://www.javacodegeeks.com/2018/12/unit-testing-anti-patterns-full-list.html

测试反模式冰激凌模式的不足

测试反模式冰激凌模式的不足_单元测试反模式,完整列表相关推荐

  1. 软件测试_单元测试反模式,完整列表

    软件测试 我前段时间写过有关OOP中的反模式的文章. 现在该写单元测试反模式了,因为它们也存在,并且有很多. 我将尝试在列表中包括我知道的每个示例. 如果您认识其他任何人,请通过请求请求添加他们,或在 ...

  2. 对象容器设计模式_容器对象模式。 一种新的测试模式。

    对象容器设计模式 如果您搜索什么是页面对象的描述,您会发现页面对象模式为我们提供了一种以可重用和可维护的方式对内容建模的常识方法. 还要指出:在Web应用程序的UI中,您的测试与某些区域交互. Pag ...

  3. fusion构建器代码语法_构建器模式:适用于代码,适用于测试

    fusion构建器代码语法 我发现构建器设计模式偶尔在代码中有用,但在测试中经常有用. 本文简要概述了该模式,然后介绍了在测试中使用该模式的一个有效示例. 请参阅github中的代码. 生成器模式的背 ...

  4. mysql 说说反模式设计_关于反模式、设计和复用的一些想法

    在维护系统的时候发现有个工作经验超级丰富的同事在C#代码中使用了goto,这段代码是一个很长的方法,goto的作用是为了复用两段逻辑.当我第一次看到goto是为了复用一段C#代码的时候感觉无比诡异,总 ...

  5. 单元测试反模式,完整列表

    我前段时间写过有关OOP中的反模式的文章 . 现在该写单元测试反模式了,因为它们也存在,并且有很多. 我将尝试在列表中包括我知道的每个示例. 如果您认识其他任何人,请通过请求请求将其添加,或在下面发表 ...

  6. 经典伴读_GOF设计模式_结构型模式

    经典伴读系列文章,不是读书笔记,自己的理解加上实际项目中运用,旨在5天读懂这本书.如果这篇文章对您有些用处,请点赞告诉我O(∩_∩)O. 如何使用设计模式抽象实例化过程.请参考<经典伴读_GOF ...

  7. ssd2828测试进入测试模式_LOL卡牌推出“远征”轮抽模式 本周再度开启线上测试...

    英雄联盟卡牌游戏Legends of Runeterra,将在11月14日再次开放测试,这次的测试持续到11月19日.在本次测试中包括轮抽模式"远征",此前接触过其他卡牌游戏的玩家 ...

  8. mvvm模式和mvc的区别_被误解的 MVC 和被神化的 MVVM,值得收藏!

    MVC 的历史 MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写.它表示的是一种常见的客户端软件开发框架 ...

  9. spring-mvc教程_使用MVC模式制作游戏-教程和简介

    spring-mvc教程 游戏开发中一种有用的体系结构模式是MVC(模型视图控制器)模式. 它有助于分离输入逻辑,游戏逻辑和UI(渲染). 在任何游戏开发项目的早期阶段,它的用途很快就会被注意到,因为 ...

最新文章

  1. mysql主从结构主数据库_mysql主从结构主数据库
  2. Android自定义Seekbar拖动条式样
  3. php 将多个数组 相同的键重组,PHP – 合并两个类似于array_combine但具有重复键的数组...
  4. 低代码开发初体验一分钟——Jeecg-Boot 在线报表开发
  5. 如何设置微信小程序地图控件满屏
  6. Java爬虫Jsoup篇
  7. Java集合框架和重要接口、类
  8. centos7加入Windows域
  9. Quartus下软硬核固化到EPCS中(JTAG)延续上篇
  10. pm2部署node项目
  11. PTA---约分最简分式 (10 分)
  12. 一文读懂nginx gzip_static
  13. 秋天的第一杯奶茶该买哪家?我用爬虫爬取所有数据教你买哪家
  14. python怎么撤销_用Python玩转微信(三)—— 查看撤回消息
  15. 计算机电源插座安装,弱电箱的插座要怎么安装 弱电箱安装插座安装方法介绍【详解】...
  16. VUE+ElementUI的表单el-from表单验证二选一必填项,并且满足条件后会清除表单验证提示。
  17. zend studio设置字体大小和背景颜色
  18. Uncaught (in promise) Error: Network Error at e.exports (axios.js:8:6410) at d.onerror (axio
  19. 基础编程题目集 编程题部分
  20. springcloud hystrix熔断器参数详解

热门文章

  1. cf 1504 F. Flip the Cards
  2. P2756 飞行员配对方案问题【网络流24题】
  3. [ZJOI2014] 璀璨光华(bfs建图 + dfs搜索)
  4. [HNOIAHOI2018] 转盘(线段树维护单调栈)
  5. 【学习笔记】浅谈短小可爱的左偏树(可并堆)
  6. 模板:回文自动机(PAM)
  7. nssl1148,jzoj5461-购物【可撤回贪心,堆】
  8. 【模板】最大权闭合图
  9. 【模拟】签订协议(nowcoder 217601)
  10. 操作系统复习笔记 07 Process Synchronization 进程同步