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;

       }

        @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页。)