单元测试 问题描述

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

添加断言消息

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

例如,在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. Java单元测试的意义_单元测试重要意义及方法介绍

    软件项目开发中,有些开发人员对单元测试的重视不够,可能有几种原因: 一.开发人员主观原因,认为"测试主要是测试人员的事情,我主要负责代码实现,功能实现就可以了,测试不是我的重要工作" ...

  4. python单元测试的应用_单元测试pythongui应用程序的推荐方法是什么?

    我目前愚蠢到试图为Python桌面应用程序维护两个并行代码基,一个使用PyGObject introspection for GTK 3,另一个使用PyGTK for GTK 2.我主要在PyGObj ...

  5. python单元测试的应用_单元测试使用请求库的python应用程序

    如果你使用具体请求尝试 httmock.它的奇妙简单和优雅: from httmock import urlmatch, HTTMock import requests # define matche ...

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

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

  7. ultraedit 运行的是试用模式_单元测试 —— 前后端分离开发模式下后端质量的保证...

    概述 在今天, 前后端分离已经是首选的一个开发模式.这对于后端团队来说其实是一个好消息,减轻任务并且更专注.在测试方面,就更加依赖于单元测试对于API以及后端业务逻辑的较验.当然单元测试并非在前后端分 ...

  8. java 接口单元测试_单元测试

    1. 单元测试 1.1. 为什么要做单元测试 帮助理解需求 单元测试应该反映使用场景,把被测单元当成黑盒测试其外部行为. 提高实现质量 单元测试不保证程序做正确的事,但能帮助保证程序正确地做事,从而提 ...

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

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

最新文章

  1. centos7 firewall 防火墙 命令
  2. 部署Chromedriver
  3. 基于 Kafka 与 Debezium 构建实时数据同步
  4. [TCP/IP] ping traceroute和TTL
  5. 在IIS中部署Asp.net Mvc
  6. linux文件系统的设计,基于Linux的文件系统设计.doc
  7. WINDOWS SERVER 2003从入门到精通之林之间的信任关系
  8. python加载模型_解决python 无法加载downsample模型的问题
  9. CentOS部署SpringBoot项目(二)
  10. erlang的简单模拟半包的产生
  11. 期末C语言45分能过的吗,C语言—期末小黄衫获奖感言
  12. ACCESS的Ole对象读取写入
  13. 【Java练习题】Java 程序的输出 | 第十一套(含解析)
  14. EHS法律法规的收集渠道
  15. 软件库App源码+后端源码
  16. 2018年湘潭大学程序设计竞赛 E 吃货
  17. opencv-contrib sfm扩展模块下载安装
  18. Instagram帖子类型及标题撰写技巧
  19. js实现加buff功能
  20. Map接口以及那些实现类

热门文章

  1. Problem H Rock Paper Scissors,FFT
  2. eclipse搭建多module项目的坑
  3. Springmvc入门案例(1)
  4. React中构造函数、reader和函数的调用次数和时机测试
  5. 集合中重写equals方法删除new的对象
  6. 【1】flink-source读取数据
  7. win7-elasticsearch环境搭建
  8. openfire log4j:ERROR setFile(null,true) call failed.
  9. redis 受攻击怎么办?_最受欢迎的6个最常用的Redis库
  10. 如何判断2服务器性能好或坏_无服务器革命:好,坏和丑