项目描述

您的单元测试应尽可能具有描述性。 他们给您的反馈应该非常清楚,您甚至不必启动调试器并一步一步地检查代码以检查局部变量。 为什么? 因为那需要时间,而且我们很懒,对吗? 为此,您需要创建描述性测试。 有多种实现方法。 这是其中两个。

添加断言消息

断言消息通常可以在测试断言中指定为附加参数,并且在特定测试用例失败时,它们会作为失败消息出现。

例如,在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');
});

……结果又是:

哦,看那里,有描述性的结果。

现在,此测试用例的结果更具描述性。 它不仅告诉您操作失败,而且还准确地向您显示了预期值和实际值。 这可能会立即提示您可能存在问题的地方。

参考:单元测试提示:在Juri Strumpflohner的TechBlog博客上,由我们的JCG合作伙伴Juri Strumpflohner创建描述性测试。

翻译自: https://www.javacodegeeks.com/2013/06/unit-testing-tip-create-descriptive-tests.html

项目描述

项目描述_单元测试技巧:创建描述性测试相关推荐

  1. 单元测试 问题描述_单元测试技巧:创建描述性测试

    单元测试 问题描述 您的单元测试应尽可能具有描述性. 他们给您的反馈应该非常清楚,您甚至不必启动调试器,并一步一步地检查代码以检查局部变量. 为什么? 因为那需要时间,而且我们很懒,对吗? 为此,您需 ...

  2. 单元测试技巧:创建描述性测试

    您的单元测试应尽可能具有描述性. 他们给您的反馈应该非常清楚,您甚至不需要启动调试器并一步一步地检查代码来检查局部变量. 为什么? 因为那需要时间,而且我们很懒,对吗? 为此,您需要创建描述性测试. ...

  3. 运维简历怎么写项目描述_职场小白怎么写简历?一份好简历=成功一半

    在求职的道路上,职场小白们摸索着一路过关斩将.简历就像是游戏中新手村出口的守关BOSS,只有通过它,菜鸟们才能够进入到更加广阔的世界.但是仔细回想一下,似乎在学校里,我们并没有接触到太多撰写简历的知识 ...

  4. python飞机大战项目描述_飞机大战项目梳理(一)

    尽力而为和志在必得还是有点差别的. 一.思路梳理 今天的内容:建立一个空白的窗口,在这个窗口里需要有一个小飞机(图片),小飞机可以根据用户按键向右或向左移动. "建立窗口"  就需 ...

  5. jacoco测试代码覆盖率_使用Jacoco测量多模块Android项目中的单元测试覆盖率:第2部分

    jacoco测试代码覆盖率 In the first article, we discovered one of the two key Gradle commands which come with ...

  6. 单元测试怎么测试线程_单元测试线程代码的5个技巧

    单元测试怎么测试线程 以下是一些技巧,说明如何进行代码的逻辑正确性测试(与多线程正确性相对). 我发现本质上有两种带有线程代码的刻板印象模式: 面向任务-许多短期运行的同类任务,通常在Java 5执行 ...

  7. 怎样编写测试类测试分支_测试技巧–不编写测试

    怎样编写测试类测试分支 对此没有太多疑问,测试代码的方式是一个有争议的问题. 不同的测试技术由于各种原因(包括企业文化,经验和总体心理观点)而受到不同开发人员的青睐. 例如,您可能更喜欢编写经典的单元 ...

  8. python文档测试_【Python入门】19.调试器pdb、单元测试unittest和文档测试doctest

    笔记更新于2019年12月4日, 摘要:各种调试方法介绍assert.logging.调试器pdb:单元测试unittest的编写方法.如何运行单元测试:文档测试doctest的编写 写在前面:为了更 ...

  9. vue 目录名称详解_使用脚手架创建vue项目目录详解

    1.目录 build 构建脚本目录: 配置了webpack的基本配置.开发环境配置.生产环境配置等: 2.目录 config 构建配置目录: 配置了路径端口值等 3.目录 lib-img 我自己建的, ...

最新文章

  1. NFS 文件共享的创建过程
  2. BZOJ5329: [SDOI2018]战略游戏——题解
  3. 【轉】Android编程之SparseArrayE详解
  4. Request请求用Cookie记录SessionId
  5. Maven出现错误No plugin found for prefix ‘jetty‘ in the current project and in the plugin groups的问题解决
  6. Hadoop科普文—常见的45个问题解答 #183; Hadoop
  7. java 中static 关键字的用法全解
  8. Ubuntu 下vim中tab键变为4个空格
  9. Elasticsearch聚合 之 Date Histogram聚合
  10. oracle动一下卡一下,记录一次Oracle很卡事件
  11. 首篇NLP图神经网络综述!127页文档让你全面了解这个领域
  12. 将相同值的行内容进行合并操作--Sql2005
  13. 有道计算机网络知识,网易有道推广介绍1 让你了解到网易的知识。。。.pptx
  14. 嵌入式驱动模块的加载与卸载
  15. 用计算机计算根号2^2-1÷,2根号2(万能计算器在线使用)
  16. 《当程序员的那些狗日日子》(四十八)No money no talk
  17. 多网卡环境下(数据网卡+有线网卡)下广播失败问题
  18. css实例——太极八卦图
  19. 大学英语b和计算机三级,统考大学英语b
  20. Android BroadcastReceiver

热门文章

  1. java9系列(八)Multi-Release JAR Files
  2. cocos2dx多线程以及线程同步 与 cocos2dx内存管理与多线程问题
  3. Http权威指南学习研究
  4. Android更新Ui的几种方法
  5. 分享一个超棒的响应式幻灯jQuery插件 - refineslide
  6. 30天敏捷生活(8): 生成你的20/80待做事项列表
  7. 一致性hash算法 - consistent hashing
  8. python3 报错 TypeError: load() got an unexpected keyword argument ‘encoding‘ 解决方法
  9. docker 可视化管理工具 rancher 简介
  10. 开源杀毒引擎 ClamAV