文|码术张

在形式上,UT即是一个个测试类。

一个测试类,包含若干method,这些method,对被测试类的method的功能,进行验证。

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

被测试类Result如下:

public Class Result {

private String downLoadStatus;

private String failureReason;

public Result(String status, String reason) {

downLoadStatus= status;

failureReason= reason;

}

@Override

public String toString() {

return "downLoadStatus: "+ downLoadStatus+ ", "

+ "failureReason: " + failureReason;

}

}

类Result中:

属性downLoadStatus,表示下载状态,如“Ongoing”,“Ok”,“Fail”。

属性failureReason,表明失败原因,例如“cannot connect”。

方法toString,将上面两个属性值组合为一个string。

ut如下:

public class ResultTest {

@Test

public void should_returnString() {

// given

String expectedString = "downLoadStatus: Fail, failureReason: cannot connect";

Result result = new Result("Fail", "cannot connect");

// when

String realString = result.toString();

// then

Assert.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() {

// given

Result result = new Result("Fail", "cannot connect");

String expectedString = "downLoadStatus: Fail, failureReason: cannot connect";

// when

String realString = result.toString();

// then

Assert.assertEquals(expectedString, realString);

}

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

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

  1. java怎么在记事本里写过运行_[置顶] 如何运行用记事本写的java程序

    今天用记事本写了一个java程序,测试能运行,现在把它分解成几个步骤,利于大家理解: 1. 新建一个记事本,后缀名是  .java  :然后在里面写一段java的代码,如图: 2.把写好的java文件 ...

  2. html中的保存功能代码怎么写,java保存html代码怎么写

    java保存html代码怎么写 [2021-01-31 03:29:24]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

  3. 代写python作业费用标准_代做159.272作业、代写Programming Paradigms作业、代做Python实验作业、代写Java/c++编程作业代写Database|代做R...

    代做159.272作业.代写Programming Paradigms作业.代做Python实验作业.代写Java/c++编程作业代写Database|代做RComputational Thinkin ...

  4. java kafkastream_手把手教你写Kafka Streams程序

    一. 设置Maven项目 我们将使用Kafka Streams Maven Archetype来创建Streams项目结构: mvn archetype:generate \ -DarchetypeG ...

  5. Java日志文档怎么写

    Java日志文档怎么写以及各句含义:见注释 ### 设置### //不同的错误类型 从小到大 ### debug--->info(常用)--->warn--->error log4j ...

  6. 学弟学妹要的Java学习路线我终于写完了

    目录 学Java有哪些就业方向? 数据结构和算法 设计模式 计算机基础 Java 入门 Java 高手进阶 基础框架(SSM) 微服务框架 常用中间件 数据库 分布式架构 必须掌握的工具软件 学习资源 ...

  7. 【大学四年自学Java的学习路线】写了一个月,这是一份最适合普通大众、非科班的路线,祝你零基础快速找到一份满意的工作

    零基础自学 Java,大概多久可以找到工作? 最近又有一个读者"在你的世界各地"向我提了上面这个问题.但说实话,这个问题并不太好问答.因为 Java 是一门"历史悠久&q ...

  8. java下拉框怎么写,java下拉框怎么写

    1. 我想用JAVA语句来实现一个表格下拉框,代码怎么写 /*DefaultTable.java*/import javax.swing.table.AbstractTableModel;public ...

  9. java中for语句NS图表示_求助 java的 NS 图怎么写

    求助 java的 NS 图怎么写 我学过c的NS图  但是java你有很多类   甚至一个程序你就有几个类  或 方法  ,那怎么写NS图 搜索更多相关的解决方案: java  个类 -------- ...

  10. 4.6 W 字总结!Java 11—Java 17特性详解

    作者 | 民工哥技术之路 来源 | https://mp.weixin.qq.com/s/SVleHYFQeePNT7q67UoL4Q Java 11 特性详解 基于嵌套的访问控制 与 Java 语言 ...

最新文章

  1. AlphaCode能替代人类程序员吗?网友:被替代也挺好,这样就可以少写代码多开会了...
  2. jQuery监控页面所有ajax请求的方法
  3. 深度解析】Google第二代深度学习引擎TensorFlow开源(CMU邢波独家点评、白皮书全文、视频翻译)
  4. apt的通讯信道是如何发现的?
  5. jvm内存溢出分析实践案例:javax.crypto.JceSecurity大量BouncyCastleProvider实例无法被回收
  6. 怎样用原生js配合css的transition写个无缝滚动
  7. Redis源码分析之工具类util
  8. iPhone:文本设计的注意事项
  9. 起底!年入2543亿,比3M更狠的口罩巨头,凭什么是它?
  10. C语言和设计模式(代理模式)
  11. wxpython隐藏panel_在wxPython中绘制到Frame内部的Panel
  12. 三维人脸重建:精读3dmm.py
  13. LabVIEW以太网仪器控制
  14. laravel框架使用教程
  15. netcfg_route_netstat_setprop 等命令的使用
  16. pytorch学习(二):mnist手写数字数据集训练和测试(一)mnist数据集分析
  17. TSMC HPC工艺介绍
  18. 抖音新号怎么快速涨粉(8种抖音运营吸粉技巧)
  19. 【深度学习神经网络】--BatchNorm详解
  20. java书籍 李清华_201772020113 李清華《面向對象程序設計(java)》第18周學習總結...

热门文章

  1. 兰勃特等角圆锥投影的双标准纬线的选择
  2. UG不用计算机名,win10系统安装UG软件后打开提示计算机名不对的解决步骤
  3. Chrome历史版本和Chrome webDriver历史版本【多测师】
  4. 沙盘模拟软件_重大消息:企业经营沙盘招新啦
  5. python3.7 中文汉化包
  6. adb工具下载及配置使用
  7. matlab editor 颜色,matlab编辑器颜色风格设置
  8. Elsevier旗下期刊利用latex模板撰写论文记录
  9. 近场动力学python_科学网—近动力学最新上线的文章快报:2018年7月 - 韩非的博文...
  10. 坑爹的matlab除法