【JAVA UT】2、写UT的科学步骤

文|码术张

在形式上,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标识。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,488评论 19 139
  • That is i don`t know 1.sk ksfsjf sa2.skfjsajfd as skfjas...
    代叶涵的私房菜阅读 220评论 0 0

友情链接更多精彩内容