文|码术张

在形式上,UT即是一个个测试类。
一个测试类,包含若干method,这些method,对被测试类的method的功能,进行验证。

一个测试类,是如何诞生的呢?本节将详细说明。
被测试类Result如下:

public Class Result {private String downLoadStatus;private String failureReason;public Result(String status, String reason) {downLoadStatus= status;failureReason= reason;}@Overridepublic String toString() {return "downLoadStatus: "+ downLoadStatus+ ", "+  "failureReason: " + failureReason;}
}

类Result中:
属性downLoadStatus,表示下载状态,如“Ongoing”,“Ok”,“Fail”。
属性failureReason,表明失败原因,例如“cannot connect”。
方法toString,将上面两个属性值组合为一个string。

ut如下:

public class ResultTest {@Testpublic void should_returnString() {// givenString expectedString = "downLoadStatus: Fail, failureReason: cannot connect";Result result = new Result("Fail", "cannot connect");// whenString realString = result.toString();// thenAssert.assertEquals(expectedString, realString);}
}

可以将完成ut的过程拆分出如下的步骤:
第1步:确定目标。
要测试什么?
在本例中,是对toString这一method进行测试。
测试toString方法,是否会能将两个值合并成预期的值。

第2步:提出假设。
假设toString的功能正常。

第3步:推测结论。
按照假设,那么,执行toString后,其返回值应当与期望值expectedString相等。

第4步:执行被测功能。
执行toString方法,并记录实际值。
用java语句表示为:

   Result result = new Result("Fail", "cannot connect");String realString = result.toString();

第5步:进行验证。
将实际值与期望值进行相等比较,验证toString功能是否符合预期。
用java语句表示为:

String expectedString = "downLoadStatus: Fail, failureReason: cannot connect";
Assert.assertEquals(expectedString, realString);

第6步:编写完整代码
首先,创建一个类。
命名为ResultTest,表明这个类是为了测试Result。当然,取其他名字,也不是不行。

public class ResultTest {}

其次,创建一个方法。
将1-5步中的java语句放在这个方法中:

  public void should_returnString() {// givenResult result = new Result("Fail", "cannot connect");String expectedString = "downLoadStatus: Fail, failureReason: cannot connect";// whenString realString = result.toString();// thenAssert.assertEquals(expectedString, realString);}

再次,为这个方法添加@Test标识。

【JAVA-UT】2、写UT的科学步骤相关推荐

  1. Java Stream来写算法01——自幂数(水仙花数)

    总目录 自幂数,就是一个长度为nnn的自然数,等于自身各个位上数字的nnn次幂的和. 例如十进制中:153=13+53+33153=1^3+5^3+3^3153=13+53+33,153是3位数,每一 ...

  2. java程序怎么写_java程序怎么写

    java程序怎么写? 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 推荐教程:<java学习> 对象: ...

  3. android调用 qt so文件路径,Android Java调用Qt写的so库

    有时候,我们反编译apk得到一个so库,如果直接使用这个so库的话,必须使用原来so库同样的package名字,才能用.这样人家反编译你的apk,就知道你侵犯了人家的版权.为了达到混淆的目的,我们可以 ...

  4. JAVA计算机毕业设计写手管理平台Mybatis+源码+数据库+lw文档+系统+调试部署

    JAVA计算机毕业设计写手管理平台Mybatis+源码+数据库+lw文档+系统+调试部署 JAVA计算机毕业设计写手管理平台Mybatis+源码+数据库+lw文档+系统+调试部署 本源码技术栈: 项目 ...

  5. java打出菱形简介_使用java打印出菱形图案的操作步骤

    使用java打印出菱形图案的操作步骤 发布时间:2020-04-25 17:17:47 来源:亿速云 阅读:118 作者:小新 今天小编给大家分享的是使用java打印出菱形图案的操作步骤,相信很多人都 ...

  6. 文本文件 java_简单的用java实现读/写文本文件的示例

    简单的用java实现读/写文本文件的示例 更新时间:2008年07月26日 13:09:26   作者: 同时也展示了如果从输入流中读出来内容写入输出流中(仅限文本流) 三个例子可以独立存在,所以根据 ...

  7. Dataset之UT Zappos50K:UT Zappos50K数据集的简介、安装、使用方法之详细攻略

    Dataset之UT Zappos50K:UT Zappos50K数据集的简介.安装.使用方法之详细攻略 目录 UT Zappos50K数据集的简介 UT Zappos50K数据集的安装 UT Zap ...

  8. 深度学习导论(5)手写数字识别问题步骤

    深度学习导论(5)手写数字识别问题步骤 手写数字识别分类问题具体步骤(Training an handwritten digit classification) 加载数据 显示训练集中的图片 定义神经 ...

  9. 优秀 Java 程序员写代码的风格

    转载自 涨姿势 | 优秀 Java 程序员写代码的风格 今天突发奇想,对编码习惯和 编程风格 很感兴趣,于是乎,找了一下关于编程风格(Java篇)的资料,希望对爱好编码或者开始学习编码的同学有帮助! ...

  10. idea 执行 java jar_idea打包java可执行jar包的实现步骤

    1,在项目上鼠标右键 --> Open Module Settings 2, Artifacts --> + --> JAR --> From modules with dep ...

最新文章

  1. 使用Jupyter Notebook
  2. [大数据] zookeeper 安装和配置
  3. RocEDU.课程设计2018 第二周进展 博客补交
  4. Oracle SQL 内置函数大全
  5. 间接银团贷款(Indirectly Syndicated Loan/PARTICIPATED)
  6. matlab gui 中指定axes窗口画进度条
  7. 洛谷 P1529 回家 Bessie Come Home Label:Dijkstra最短路 乱搞
  8. linux耳机插拔检测,Android应用开发之耳机插拔处理两种方式
  9. python列表元素之和_python实现计算列表元素之和
  10. 【iOS开发】如何用 Swift 语言进行LBS应用的开发?
  11. 学习Altas 笔记[js调用重载的方法出错,如何处理]
  12. 如何用B表的数据,更新A表的值
  13. 【基于JAVA的旅游路线推荐系统-哔哩哔哩】 https://b23.tv/4STx5NI
  14. 非常喜欢微信公众号最近的几个新能力
  15. 目前计算机无法显示的四叠字,四叠字列表(共19个),还能用的四叠字大全,带拼音,部分注释!...
  16. 基于SSM架构的美发店会员信息管理系统
  17. 关于错误修改了/etc/profile文件(环境变量错误)
  18. matplotlib绘制多维度分类散点图
  19. mysql主从服务器宕机,Mysql主从数据库配置及宕机处理
  20. pyqt5 tablewidget 隐藏表头,设置表头

热门文章

  1. 【漏洞复现】永恒之蓝 MS17-010 远程溢出漏洞(CVE-2017-0143)
  2. 第八章 界面外观——Qt
  3. 怎么做web接口测试
  4. C#中File和FileInfo的区别和用法
  5. 【Matlab学习手记】标签显示在刻度之间
  6. bluetooth baseband
  7. 中超比赛小观-长沙金德对上海申花(图,视频)_原水_新浪博客
  8. 对象布局(JOL)、分配过程以及访问定位
  9. tensorflow函数 tf.nn.xw_plus_b
  10. 是时候将你的Python版本升级到3.8了!为什么我选择Python3.8?