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是指測試程式本身出錯