1. 程式人生 > >JUnit4測試框架

JUnit4測試框架

JUnit4測試框架

    在軟體測試領域有很多的測試框架,比如JUnit、TestNG等,但是最著名的則是JUnit。在這個測試框架中有一句經典的話:keeps the bar green to keeps the code clean!以下介紹整個框架的入門。

新建和命名規則

    我們可以“new--JUnitTest Case”來新建一個JUnit測試類,如下:


紅色部分可以確定要測試的類。

 

我們對已要測試的類的命名為:類名+Test,而類中的方法命名為test+方法名,方法名的首寫字母一般為小寫,這個就要改成大寫,比如:

類名:User --> UserTest

方法名:add --> TestAdd

放棄舊的斷言,使用hamcrest斷言

    在以前的斷言中,我們使用junit提供的方法。但是現在我們只是用assertThat一個方法來代替其他所有的斷言方法,但是需要引入hamcrest包。

3.示例

a)assertThat( n, allOf( greaterThan(1),lessThan(15) ) );

 assertThat( n, anyOf( greaterThan(16), lessThan(8) ) );

 assertThat( n, anything() );

 assertThat( str, is( "bjsxt" ) );

 assertThat( str, not( "bjxxt" ) );

 

b)assertThat( str, containsString("bjsxt" ) );

 assertThat( str, endsWith("bjsxt" ) );

 assertThat( str, startsWith( "bjsxt" ) );

 assertThat( n, equalTo( nExpected ) );

 assertThat( str, equalToIgnoringCase( "bjsxt" ) );

 assertThat( str, equalToIgnoringWhiteSpace( "bjsxt" ) );

 

c)assertThat( d, closeTo( 3.0, 0.3 ) );

 assertThat( d, greaterThan(3.0) );

 assertThat( d, lessThan (10.0) );

 assertThat( d, greaterThanOrEqualTo (5.0) );

 assertThat( d, lessThanOrEqualTo (16.0) );

 

d)assertThat( map, hasEntry("bjsxt", "bjsxt" ) );

 assertThat( iterable, hasItem ( "bjsxt" ) );

 assertThat( map, hasKey ( "bjsxt" ) );

 assertThat( map, hasValue ( "bjsxt" ) );

JUnit4 Annotation

[email protected]: 測試方法

  a)(expected=XXException.class)

  這個是如果方法要測試丟擲的異常是否是期望的異常。

  b)(timeout=xxx)

  這個是測試程式執行效率的,是否是在規定的時間內完成的。

[email protected]: 被忽略的測試方法

[email protected]: 每一個測試方法之前執行

[email protected]: 每一個測試方法之後執行

[email protected]: 所有測試開始之前執行

[email protected]: 所有測試結束之後執行

Failure和Error

1.Failure是指測試失敗

2.Error是指測試程式本身出錯