From:百度文庫less
1、準備工做:ide
1. 1. 導入Junit jar包;測試
項目名--->Build Path—>Configure Build Path... 會彈出來一個框 在那四個選項選擇 Libraries 而後再選擇 右邊 第二個選項Add External Jars... 而後就是你JAR的路徑ui
2. 在項目目錄下新建一個Source Fold(通常命名爲 test);3d
3. 新建一個測試類(通常命名規則爲:被測試類名+Test,例如: HelloWordTest) 繼承junit.framework.TestCase類;rest
4. 編寫測試方法(方法名必須以test+用例方法名稱);對象
以下:blog
Junit被用來測試代碼,而且它是由可以測試不一樣條件的斷言方法(assertion method)組成,經常使用斷言方法以下:繼承
測試a是否等於b(a和b是原始類型數值(primitive value)或者必須爲實現比較而具備equal方法)ip
測試a是否爲false(假),a是一個Boolean數值。
測試a是否非空,a是一個對象或者null。
測試a和b是否沒有都引用同一個對象。
測試a是否爲null,a是一個對象或者null。
測試a和b是否都引用同一個對象。
測試a是否爲true(真),a是一個Boolean數值。
? 咱們使用這些方法來構建JUnit測試。當運行一個JUnit應用程序時,它打開本身的視圖(view)來當即指示哪一個測試經過了,哪一個測試失敗了。
被測試類:
測試類:
? 注:執行TestRunner.run(HelloWordTest.class)後會出現:
? Time上的小點表示測試個數,若是測試經過則顯示OK。不然在小點的後邊標上F,表示該測試失敗。
? 綜上所敘:編寫測試類的基本步驟:
1>;擴展TestCase類;
2>;覆蓋runTest()方法(可選);
3>;寫一些testXXXXX()方法;
1.導入junit 4和hamcrest-all jar包;
2.assertThat:
基本語法: assertThat( [value], [matcher statement] );
value 是接下來想要測試的變量值;
matcher statement 是使用 Hamcrest 匹配符來表達的對前面變量所指望的值的聲明,若是 value 值與 matcher statement 所表達的指望值相符,則測試成功,不然測試失敗。
? allOf
匹配符代表若是接下來的全部條件必須都成立測試才經過,至關於「與」(&&)
assertThat( testedNumber, allOf( greaterThan(8), lessThan(16) ) );
? anyOf
匹配符代表若是接下來的全部條件只要有一個成立則測試經過,至關於「或」(||)
assertThat( testedNumber, anyOf( greaterThan(16), lessThan(8) ) );
? anything
匹配符代表不管什麼條件,永遠爲true
assertThat( testedNumber, anything() );
? is
匹配符代表若是前面待測的object等於後面給出的object,則測試經過
assertThat( testedString, is( "developerWorks" ) );
? not
匹配符和is匹配符正好相反,代表若是前面待測的object不等於後面給出的object,則測試經過
assertThat( testedString, not( "developerWorks" ) );
? containsString
匹配符代表若是測試的字符串testedString包含子字符串"developerWorks"則測試經過
assertThat( testedString, containsString( "developerWorks" ) );
? endsWith
匹配符代表若是測試的字符串testedString以子字符串"developerWorks"結尾則測試經過
assertThat( testedString, endsWith( "developerWorks" ) );
? startsWith
匹配符代表若是測試的字符串testedString以子字符串"developerWorks"開始則測試經過
assertThat( testedString, startsWith( "developerWorks" ) );
? equalTo
匹配符代表若是測試的testedValue等於expectedValue則測試經過,equalTo能夠測試數值之間,字符串之間和對象之間是否相等,至關於Object的equals方法
assertThat( testedValue, equalTo( expectedValue ) );
? equalToIgnoringCase
匹配符代表若是測試的字符串testedString在忽略大小寫的狀況下等於 "developerWorks"則測試經過
assertThat( testedString, equalToIgnoringCase( "developerWorks" ) );
? equalToIgnoringWhiteSpace
匹配符代表若是測試的字符串testedString在忽略頭尾的任意個空格的狀況下等於"developerWorks"則測試經過,注意:字符串中的空格不能被忽略
assertThat( testedString, equalToIgnoringWhiteSpace( "developerWorks" ) );
? closeTo
匹配符代表若是所測試的浮點型數testedDouble在20.0±0.5範圍以內則測試經過
assertThat( testedDouble, closeTo( 20.0, 0.5 ) );
? greaterThan
匹配符代表若是所測試的數值testedNumber大於16.0則測試經過
assertThat( testedNumber, greaterThan(16.0) );
? lessThan
匹配符代表若是所測試的數值testedNumber小於16.0則測試經過
assertThat( testedNumber, lessThan (16.0) );
? greaterThanOrEqualTo
匹配符代表若是所測試的數值testedNumber大於等於16.0則測試經過
assertThat( testedNumber, greaterThanOrEqualTo (16.0) );
? lessThanOrEqualTo
匹配符代表若是所測試的數值testedNumber小於等於16.0則測試經過
assertThat( testedNumber, lessThanOrEqualTo (16.0) );
? hasEntry
匹配符代表若是測試的Map對象mapObject含有一個鍵值爲"key"對應元素值爲"value"的Entry項則測試經過
assertThat( mapObject, hasEntry( "key", "value" ) );
? hasItem
匹配符代表若是測試的迭代對象iterableObject含有元素「element」項則測試經過
assertThat( iterableObject, hasItem ( "element" ) );
? hasKey
匹配符代表若是測試的Map對象mapObject含有鍵值「key」則測試經過
assertThat( mapObject, hasKey ( "key" ) );
? hasValue
匹配符代表若是測試的Map對象mapObject含有元素值「value」則測試經過
assertThat( mapObject, hasValue ( "key" ) );
? not和equalTo
表示「不等於」
assertThat( something, not( equalTo( "developer" ) ) );
? not和containsString
表示「不包含子字符串」
assertThat( something, not( containsString( "Works" ) ) );
? anyOf和containsString
表示「包含任何一個子字符串」
assertThat(something, anyOf(containsString("developer"), containsString("Works")));
被測試類:
測試類:
免費共享資源,從我作起!