天天看點

Junit 單元測試使用總結   Failure和ErrorJUnit4 Annotation運作多個測試注意

什麼是單元測試

      我們寫了一套接口,一個類拿給别人用,怎樣保證沒有bug呢?測試一下。我們可以寫一個main方法測試一下啊!使用main方法測試好嗎?碼農們肯定異口同聲的說:“真的是不好”。

       使用main測試:

                    1.繁瑣不說,也不能好多方法一起測試

                    2.好的人工的看結果,檢查程式是否正确

Junit HelloWorld

     1 new project

          2 new  class

          3 建立classcase

放棄舊的斷言,使用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命名

上一篇: zoj1526
下一篇: ZOJ-2772

繼續閱讀