项目描述_单元测试技巧:创建描述性测试
项目描述
您的单元测试应尽可能具有描述性。 他们给您的反馈应该非常清楚,您甚至不必启动调试器并一步一步地检查代码以检查局部变量。 为什么? 因为那需要时间,而且我们很懒,对吗? 为此,您需要创建描述性测试。 有多种实现方法。 这是其中两个。
添加断言消息
断言消息通常可以在测试断言中指定为附加参数,并且在特定测试用例失败时,它们会作为失败消息出现。
例如,在jUnit中,您可以指定断言消息,例如:
assertEquals("The firstname of the two people should match if the clone was successful", "Fritz", person1.getFirstname());
另一方面,在MSTest中,必须将断言消息作为最后一个参数添加。
Assert.AreEqual("Fritz", person1.Firstname, "The firstname of the two people should match if the clone was successful");
注意,不要“过度设计”。 我将这些注释与其他代码注释类似地对待:如果它们添加了有意义的信息,则只需添加它们。 否则,它们就是浪费,因此就这样对待它们。
首选显式断言
我的意思是显式断言是针对您要执行的操作使用正确的断言。 例如,如果您需要像前面提到的断言中一样执行相等性检查,请不要使用布尔断言声明。 (这里是一个虚拟QUnit测试用例的示例)
test('Should correctly clone two people', 1, function(){//...ok(person1.firstname === 'Fritz', 'I expect both names to match if the clone operation succeeded');
});
…以及在输出窗口中的相应结果:
这个结果并不是真正的描述性…
结果并不能告诉我们很多,对吧? 您可以说的是,此人的名字与您期望的名字不匹配,因此克隆操作可能不会成功。 但为什么?? 那它的实际价值是多少?
使用equals
代替:
test('Should correctly clone two people', 1, function(){//...equal(person1.firstname, 'Fritz', 'I expect both names to match if the clone operation succeeded');
});
……结果又是:
哦,看那里,有描述性的结果。
现在,此测试用例的结果更具描述性。 它不仅告诉您操作失败,而且还准确地向您显示了预期值和实际值。 这可能会立即提示您可能存在问题的地方。
翻译自: https://www.javacodegeeks.com/2013/06/unit-testing-tip-create-descriptive-tests.html
项目描述
项目描述_单元测试技巧:创建描述性测试相关推荐
- 单元测试 问题描述_单元测试技巧:创建描述性测试
单元测试 问题描述 您的单元测试应尽可能具有描述性. 他们给您的反馈应该非常清楚,您甚至不必启动调试器,并一步一步地检查代码以检查局部变量. 为什么? 因为那需要时间,而且我们很懒,对吗? 为此,您需 ...
- 单元测试技巧:创建描述性测试
您的单元测试应尽可能具有描述性. 他们给您的反馈应该非常清楚,您甚至不需要启动调试器并一步一步地检查代码来检查局部变量. 为什么? 因为那需要时间,而且我们很懒,对吗? 为此,您需要创建描述性测试. ...
- 运维简历怎么写项目描述_职场小白怎么写简历?一份好简历=成功一半
在求职的道路上,职场小白们摸索着一路过关斩将.简历就像是游戏中新手村出口的守关BOSS,只有通过它,菜鸟们才能够进入到更加广阔的世界.但是仔细回想一下,似乎在学校里,我们并没有接触到太多撰写简历的知识 ...
- python飞机大战项目描述_飞机大战项目梳理(一)
尽力而为和志在必得还是有点差别的. 一.思路梳理 今天的内容:建立一个空白的窗口,在这个窗口里需要有一个小飞机(图片),小飞机可以根据用户按键向右或向左移动. "建立窗口" 就需 ...
- jacoco测试代码覆盖率_使用Jacoco测量多模块Android项目中的单元测试覆盖率:第2部分
jacoco测试代码覆盖率 In the first article, we discovered one of the two key Gradle commands which come with ...
- 单元测试怎么测试线程_单元测试线程代码的5个技巧
单元测试怎么测试线程 以下是一些技巧,说明如何进行代码的逻辑正确性测试(与多线程正确性相对). 我发现本质上有两种带有线程代码的刻板印象模式: 面向任务-许多短期运行的同类任务,通常在Java 5执行 ...
- 怎样编写测试类测试分支_测试技巧–不编写测试
怎样编写测试类测试分支 对此没有太多疑问,测试代码的方式是一个有争议的问题. 不同的测试技术由于各种原因(包括企业文化,经验和总体心理观点)而受到不同开发人员的青睐. 例如,您可能更喜欢编写经典的单元 ...
- python文档测试_【Python入门】19.调试器pdb、单元测试unittest和文档测试doctest
笔记更新于2019年12月4日, 摘要:各种调试方法介绍assert.logging.调试器pdb:单元测试unittest的编写方法.如何运行单元测试:文档测试doctest的编写 写在前面:为了更 ...
- vue 目录名称详解_使用脚手架创建vue项目目录详解
1.目录 build 构建脚本目录: 配置了webpack的基本配置.开发环境配置.生产环境配置等: 2.目录 config 构建配置目录: 配置了路径端口值等 3.目录 lib-img 我自己建的, ...
最新文章
- NFS 文件共享的创建过程
- BZOJ5329: [SDOI2018]战略游戏——题解
- 【轉】Android编程之SparseArrayE详解
- Request请求用Cookie记录SessionId
- Maven出现错误No plugin found for prefix ‘jetty‘ in the current project and in the plugin groups的问题解决
- Hadoop科普文—常见的45个问题解答 #183; Hadoop
- java 中static 关键字的用法全解
- Ubuntu 下vim中tab键变为4个空格
- Elasticsearch聚合 之 Date Histogram聚合
- oracle动一下卡一下,记录一次Oracle很卡事件
- 首篇NLP图神经网络综述!127页文档让你全面了解这个领域
- 将相同值的行内容进行合并操作--Sql2005
- 有道计算机网络知识,网易有道推广介绍1 让你了解到网易的知识。。。.pptx
- 嵌入式驱动模块的加载与卸载
- 用计算机计算根号2^2-1÷,2根号2(万能计算器在线使用)
- 《当程序员的那些狗日日子》(四十八)No money no talk
- 多网卡环境下(数据网卡+有线网卡)下广播失败问题
- css实例——太极八卦图
- 大学英语b和计算机三级,统考大学英语b
- Android BroadcastReceiver
热门文章
- java9系列(八)Multi-Release JAR Files
- cocos2dx多线程以及线程同步 与 cocos2dx内存管理与多线程问题
- Http权威指南学习研究
- Android更新Ui的几种方法
- 分享一个超棒的响应式幻灯jQuery插件 - refineslide
- 30天敏捷生活(8): 生成你的20/80待做事项列表
- 一致性hash算法 - consistent hashing
- python3 报错 TypeError: load() got an unexpected keyword argument ‘encoding‘ 解决方法
- docker 可视化管理工具 rancher 简介
- 开源杀毒引擎 ClamAV