JUNIT4

什麼是單元測試

寫了個類,要給別人用,會不會有bug?怎麼辦?測試一下。

用main方法測試好不好?不好!

1.        不能一起運行!

2.        大多數情況下需要人爲的觀察輸出確定是否正確

爲什麼要進行單元測試

重用測試,應付將來的實現的變化。

提高士氣,明確知道我的東西是沒問題的。

JUnit4 HelloWorld

1.        new project

2.        建立類

3.        建立testcase

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

1.        assertThat

2.        使用hamcrest的匹配方法

a)        更自然

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" ) );

Failure和Error

1.        Failure是指測試失敗

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

JUnit4 Annotation

1.        @Test: 測試方法

a)        (expected=XXException.class)

b)       (timeout=xxx)

2.        @Ignore: 被忽略的測試方法

3.        @Before: 每一個測試方法之前運行

4.        @After: 每一個測試方法之後運行

5.        @BeforeClass: 所有測試開始之前運行

6.        @AfterClass: 所有測試結束之後運行

運行多個測試

注意

1.        遵守約定,比如:

a)        類放在test包中

b)       類名用XXXTest結尾

c)        方法用testMethod命名

其他框架

TestNG

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章