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

我前段时间写过有关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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大学计算机——所有大学生都应学习的一门计算思维基础教育课程,_大学计算机_所有大学生都应学习的一门计算思维基础教育课程...

中国大学教学 2011年第4期“大学计算机”——所有大学生都应学习的一门计算思维基础教育课程战德臣 聂兰顺 徐晓飞摘 要:当前,大学非计算机专业计算机课程存在知识型/技能型教学与未来计算能力需求之间的鸿沟,致使计算机教育存在危机。本文分…

【渝粤题库】广东开放大学 文化产业概论 形成性考核

选择题 题目:目前关于文化产业的定义有以下()几种 题目:根据《文化及相关产业指标体系框架》,文化产业具体可划分为() 题目:中国的文化产业在发展过程中,出现了以下&…

【渝粤题库】广东开放大学 金融经济学 形成性考核

选择题 题目:( )理论认为,现实中的个体和企业经理人面临着风险或不确定性。 答案: A、计量经济学 B、微观经济学 C、宏观经济学 D、金融经济学 题目:以下不属于个体可用的融资工具是( …

【渝粤题库】陕西师范大学180105 推销策略 作业(高起专)

一、填空 1、现代推销理念的核心是 需要。 2、按照推销方格理论, 的推销心理是最理想的。 3、收集推销信息的方法,主要有: 、观察法和实验法。 4、对顾客购买力评价是指组织或个人 的审查。 5、推销洽谈的报价原则是 。 6、在不熟悉推销对象的…

控制计算机价格,本人对电脑不太懂。想十一买台笔记本电脑。价格控制在5000之内。请高手指点一下。谢谢!...

你好朋友,要达到你的需求,至少应该满足三点,一是15.6尺寸;二是I5以上处理器,三是大容量内存,最好是6-8G的。你选择的两款,第一款已经停产,第二款还不错,新架构处理器&…

amazon云服务_亚马逊Simple Worklfow服务的骆驼演示

amazon云服务在上一篇文章中,我解释了为什么AWS SWF服务很好,并宣布了新的Camel SWF组件。 现在,组件文档已准备就绪, 这是一个简单的完全可用的演示。 它包含三个独立的独立骆驼路线: 工作流生产者允许我们与工作流进…

【渝粤题库】陕西师范大学200401 初等代数研究 作业(专升本)

《初等代数研究》作业 一。填空题 1.第一数学归纳法的内容是____________. 2.函数的值域是_________. 3.函数的定义域是__________. 4.函数在内的反函数是 . 5.模的剩余类具有的性质是(至少写出两条&#x…

js结合css3,使用JS和CSS3实现的旗帜飘扬动画

CSS语言:CSSSCSS确定body {padding: 0px;margin: 0px;background-color: black;text-align: center;position: absolute;top: 0px;bottom: 0px;left: 0px;right: 0px;overflow: hidden;}#canvas {position: relative;padding: 0px;height: 320px;width: 480px;margi…

【渝粤题库】陕西师范大学200991教育统计学作业(高起本)

《教育统计学》作业(教育学) 一、名词解释 分层抽样描述统计集中量统计表总体和样本二列相关参数小概率事件中位数统计量和参数回归分析相关关系 二、填空题 1.从变化方向上看,两个变量之间的相关类型有正相关、 、 。 2.教育统计资料的来源…

【渝粤题库】陕西师范大学202007 高等数学(二) 作业

《高等数学(二)》作业 一、判断题 1、两向量夹角的范围为[0,π]。 ( ) 2、 向量a∥b当且仅当ab0。 ( ) 3、若在点处的偏导数存在,则在点处的方向导数存在。 ( ) 4、加上、…

功能Java示例 第6部分–用作参数

这是称为“ Functional Java by Example”的系列文章的第6部分。 我在本系列的每个部分中发展的示例是某种“提要处理程序”,用于处理文档。 在前面的部分,我们试图通过移动尽可能多的副作用,如IO,该系统的外部,以使我…

【渝粤题库】陕西师范大学202801 中国古代文学(五) 作业

一、选择题 1、元代出现了一大批杂剧的优秀作家,《析律志》说:“生而倜傥,博学能文,滑稽多智,蕴藉风流,为一时之冠”的作家是( ): A.王实甫 B.关汉卿 C.马致远 D.高明…

【渝粤题库】陕西师范大学210010 幼儿园管理学 作业(高起专、专升本)

《幼儿园管理学》考评作业 一、填空题 (1)我国学前教育各级机构权限的划分制度是 、 、 。 (2)管理内容的五大要素是 、 、 、 、 。 (3)幼儿园总务工作的特点是 、 、 、 。 (4)园长…

【渝粤题库】陕西师范大学292281中央银行学Ⅰ作业(高起专)

一、单选题 中央银行之所以成为中央银行,最基本、最重要的标志( )。 A. 集中存款准备金 B. 集中与垄断货币发行 C. 充当“最后贷款人” D. 代理国库( )是当今世界上最富于全球代表性和影响力的政府间国际金融组织&…

【渝粤题库】陕西师范大学500004 电动力学

《电动力学》作业 一. 单项选择题 半径为R的均匀磁化介质球,磁化强度为,则介质球的总磁矩为 A. B. C. D. 0 真空中做匀速直线运动的电荷不能产生 A. 电场 B. 磁场 C. 电磁辐射 D. 位移电流 线性介质中磁场的能量密度为 A. B. C. D. 磁场的矢量势是依据…

【渝粤题库】陕西师范大学800001 自然地理学

《自然地理学》作业 一.填空题 1.分隔地幔和地核的不连续界面是 。   2.摩氏硬度是7的矿物是 ,该矿物具有的光泽是 。   3.按照地震的成因不同,地震可分为 、 和 三种…

系统属性的JDK 12 Javadoc标记

JDK 12 Early Access Build 20 ( 2018/11/15 )可用,可以用来试用新的Javadoc标签{systemProperty} 。 新的{systemProperty} Javadoc标记在core-libs-dev邮件列表消息“ FYI:用于文档系统属性的新javadoc标记 ”中进行了讨论&…

国家开放大学2021春1079高等代数专题研究题目

教育 教育 试卷代号:1079 2021年春季学期期末统一考试 高等代数专题研究 试题 2021年7月 一、单项选择题(本题共20分,每小题4分) 1.下列运算中,( )是有理数域Q上的代数运算. A.a。ba B.a。bb …

【渝粤教育】广东开放大学 Android移动开发项目实践 形成性考核 (58)

题库查询系统退出 选择题 题目:下列选项中,属于Android Studio工具中创建项目时选择的按钮的是()。 答案: A、Start a new Android Studio project 题目:下列选项中,属于Log类中显示黑色的日志内…

qt服务器获取formdata文件,QT上传(PUT)文件

我正在使用QT将文件上传到Web服务器。QT上传(PUT)文件curl -X POST -H Content-Type:multipart/form-data-H Authorization: Token -F [email protected]_to_upload.txthttps://some.web.site/api/v2/files/contents/我使用大致是这样的QT调用尝试来完成相同的:QHtt…