myEclipse中如何使用Junit_第1頁
myEclipse中如何使用Junit_第2頁
myEclipse中如何使用Junit_第3頁
myEclipse中如何使用Junit_第4頁
myEclipse中如何使用Junit_第5頁
已閱讀5頁,還剩4頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、myEclipse下使用Junit一、準備工作:1 .導入 Junitjar 包;2 .在項目目錄下新建一個 SourceFold(一般命名為 test);3 .新建一個測試類 (一般命名規則為: 被測試類名+Test,例如:HelloWordTest) 繼承 junit.framework.TestCase類;4 .編寫測試方法(方法名必須以 test+用例方法名稱);如下:T 好Jimit4.7目網src-com.junit.simplt-jjH&llolfford.j&vaEHillofferd&HellofferdOisOKGtringjbooleiri*siy

2、0:Striiig-testH出com.junit.-|3HellofferdTest.-HelloffcrdT-st6?main(String):vaid有有Hell(String)二、使用Junit進行測試Junit 被用來測試代碼,并且它是由能夠測試不同條件的斷言方法(assertionmethod)組成,常用斷言方法如下:assertEquals(a,b)測試 a 是否等于 b(a 和 b 是原始類型數值(primitivevalue)或者必須為實現比較而具有 equal 方法)assertFalse(a)測試 a 是否為 false(假),a 是一個 Boolean 數值。asser

3、tNotNull(a)測試 a 是否非空,a 是一個對象或者 null。assertNotSame(a,b)測試 a 和 b 是否沒有都引用同一個對象。assertNull(a)測試 a 是否為 null,a 是一個對象或者 null。assertSame(a,b)測試 a 和 b 是否都引用同一個對象。assertTrue(a)測試 a 是否為 true(真),a 是一個 Boolean 數值。我們使用這些方法來構建 JUnit 測試。當運行一個 JUnit 應用程序時,它打開自己的視圖來立即指示哪個測試通過了,哪個測試失敗了。被測試類:packagecom.junit.simple;pub

4、licclassHelloUordpublicHelloV/ordOsuperbpublicStringsay()returnHelloWordfpublicbooleanisOK(Strings)IF(s.equals(OK)1elseIreturnfalse:E測試類:(view)importjumit.framework.TestCase;inpartjumit.textui.TestRunner;importcom.junit.simple.HelloWord;publicclassHelloWordTestextendsTestCasepublicHe11oUordTest(Stri

5、ngname)publicuoidtestisDk()HlelloUordhi=newHelloUord();assertFalse(hi-isOKCop,*);publicstaticvoidoain(Stringargs);擴展 TestCas 讀;2;覆蓋 runTest()方法(可選);3;寫一些 testXXXXX(小法;三、Junit4的新特性1.導入 junit4 和 hamcrest-alljar 包;2.assertThat:基本語法:assertThat(value,matcherstatement);value 是接下來想要測試的變量值;matcherstatement

6、是使用 Hamcrest 匹配符來表達的對前面變量所期望的值的聲明,如果value 值與 matcherstatement 所表達的期望值相符,則測試成功,否則測試失敗。2、使用 hamcrest 的匹配方法2.1、一般匹配符allOf匹配符表明如果接下來的所有條件必須都成立測試才通過,相當于與”(&)1、Hamcrest 的斷言語法assertThatassertThat(testedNumber,allOf(greaterThan(8),lessThan(16);anyOf匹配符表明如果接下來的所有條件只要有一個成立則測試通過,相當于或(|)assertThat(testedNum

7、ber,anyOf(greaterThan(16),lessThan(8);anything匹配符表明無論什么條件,永遠為 trueassertThat(testedNumber,anything();is匹配符表明如果前面待測的 object 等于后面給出的 object,則測試通過assertThat(testedString,is(developerWorks);not匹配符和 is 匹配符正好相反,表明如果前面待測的 object 不等于后面給出的 object,則測試通過assertThat(testedString,not(developerWorks);2.2、字符串相關匹配符c

8、ontainsString匹配符表明如果測試的字符串 testedString 包含子字符串developerWorks則測試通過assertThat(testedString,containsString(developerWorks);endsWith匹配符表明如果測試的字符串 testedString 以子字符串developerWorks結尾則測試通過assertThat(testedString,endsWith(developerWorks);startsWith匹配符表明如果測試的字符串 testedString 以子字符串developerWorks開始則測試通過assertT

9、hat(testedString,startsWith(developerWorks);equalTo匹配符表明如果測試的 testedValue 等于 expectedValue 則測試通過,equalT??梢詼y試數值之間,字符串之間和對象之間是否相等,相當于 Object 的 equals 方法assertThat(testedValue,equalTo(expectedValue);equalToIgnoringCase匹配符表明如果測試的字符串 testedString 在忽略大小寫的情況下等于developerWorks則測試通過assertThat(testedString,equ

10、alToIgnoringCase(developerWorks);equalToIgnoringWhiteSpace匹配符表明如果測試的字符串 testedString 在忽略頭尾的任意個空格的情況下等于developerWorks則測試通過,注意:字符串中的空格不能被忽略assertThat(testedString,equalToIgnoringWhiteSpace(developerWorks);2.3、數值相關匹配符closeTo匹配符表明如果所測試的浮點型數 testedDouble 在 20.0眥圍之內則測試通過assertThat(testedDouble,closeTo(20.

11、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);

12、lessThanOrEqualTo匹配符表明如果所測試的數值 testedNumber 小于等于 16.0 則測試通過assertThat(testedNumber,lessThanOrEqualTo(16.0);2.4、collection 相關匹配符hasEntry匹配符表明如果測試的 Map 對象 mapObject 含有一個鍵值為key對應元素值為value的 Entry項則測試通過assertThat(mapObject,hasEntry(key,value);hasItem匹配符表明如果測試的迭代對象 iterableObject 含有元素“elemen 頤則測試通過assertT

13、hat(iterableObject,hasItem(element);hasKey匹配符表明如果測試的 Map 對象 mapObject 含有鍵值“ke 則測試通過assertThat(mapObject,hasKey(key);hasValue匹配符表明如果測試的 Map 對象 mapObject 含有元素值“valuer 測試通過assertThat(mapObject,hasValue(key);2.5、Matcher 匹配符聯合使用not 和 equalTo表示不等于assertThat(something,not(equalTo(developer);not 和 containsS

14、tring表示不包含子字符串”assertThat(something,not(containsString(Works);anyOf 和 containsString表示包含任何一個子字符串”assertThat(something,anyOf(containsString(developer),containsString(Works);3 、JUnit4 注解Test:測試方法Ignore:被忽略的測試方法Before:每一個測試方法之前運行After:每一個測試方法之后運行BeforeClass:所有測試開始之前運行AfterClass:所有測試結束之后運行四、附錄Junit4注解式測

15、試方法示例(測試類不用繼承TestCase被測試類:packagecow.juni,simple;EM和.:亂叩誓艇郛:.:?-:5s:.:%s-:2s:i-:M-:.Js.:a-:-i.:i:.s.:?-:-:$;:?:.:publicclassHellopu) )cintadd(intreturnx+y;y)pubXicintdivide(intx.iiity)returnx/y;publicstaticvoidmain(Stringargs)intz=nevrHello().add(3fS):Systemout.println(z);測試類:packacjecom.junit4.test

16、;importstaticerg,junitAssert.*;importstaticarg.hamcrest.Matchers*unportorq.junit.After;zLmortorg-junit.Before;InortorgijunitiBeforeCLass;importorg,junit,AfterClass;importorgijunitiTest;importcoinijunit4.simpleHeLLa;publicclassHelioTest(QBeforeCLasspublicstaticvoidbeforeClass()Systenicut.pirintLn(,Fbeoi:eClass,r);)AtterClasspublicstatic?voidaftsrClass()(Systen*.out.printin(TrsterClassr,):)Beforepublicvoidtoeiore()System-out.printin(*befQi:e*r);)TestpublicvoidtestAdd()inta=newHe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論