金沙澳门官网登录-www.js8.com-金沙澳门官网下载app

2、从最基础的开始

2、从最基础的开始。本系列的UT基于使用率最普遍的JUnit4。虽然目前最新版本是JUnit5,但其保持了对 JUnit4 的向后兼容性,所以不用担心本系列中所介绍的内容用不上。

假设你是一个还不认识UT的小伙伴,让我们从最基础的开始吧。

下面,我会写一个UT的例子,然后一行一行的解释。

首先,请出被测试的类Result。

它有两个属性。

一个属性是downLoadStatus,表示下载的结果,其值是“OK”或是“Fail”。

另一个属性failureReason,表明失败的具体原因,例如连接失败,“cannot connect”。

这个类除了构造方法外,只有一个方法toString, 将这两个值变成一个string.

下面是这个类,叫做Result.

Public Class Result {

        private String downLoadStatus;

        private String failureReason;

        public Result(String status, String reason) {

              downLoadStatus= status;

              failureReason= reason;

       }

2、从最基础的开始。2、从最基础的开始。2、从最基础的开始。        @Override

        public String toString() {

                return "downLoadStatus: "+ downLoadStatus+ ", "

                           +  "failureReason: " + failureReason;

        }

}

下面是对Result类toString方法进行测试的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,我们把它放在类ResultTest中,用以说明这是Result的ut。

1,@Test是什么?

表明这是一个测试方法。

一个ut可以有若干个被@Test修改的方法。

也可以有若干个没有被@Test修饰的方法。

每一个测试方法,称为一个case。

2,public void should_returnString(),必须这样声明么?

必须的!

测试方法必须使用public void进行修饰,不能带任何的参数。

should_returnString, 用于说明这个case的目的。

3,// given

跟在这个注释后的内容,是前置条件。

4,// when

当被测试的方法执行后,记录它返回的结果。

5,// then

最后,将两个结果进行比较:被测试方法返回的结果,期望的结果。

如果两者相等,则passed;否则,failed。

如果passed,恭喜你!

如果failed,也恭喜你!

你都成功了!

“因为一个实验并不会因为没有达到预期的结果就被称为失败了,只有它的结果无法测出假设的真假时才会被称为失败了。” (《禅与摩托车维修艺术》,[美]罗伯特-M.波西格(Robert M.Pirsig),著。张国辰 译。重庆出版社。第97页。)

本文由金沙澳门官网登录发布于金沙澳门官网下载app,转载请注明出处:2、从最基础的开始

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。