如何在eclipse中經過Juit進行單元測試

一、什麼是Junit
Junit即單元測試,是JAVA語言的單元測試框架,是對程序的一個方法所進行的測試
通常都是由程序員本身經過Junit來進行測試,所以單元測試也叫程序員測試;
若是測試人員熟悉程序員的代碼邏輯也能夠進行接口測試,可用於進行接口測試,即白盒測試。
二、如何使用Junit
要使用Junit測試框架,必需要在maven項目的基礎上才能使用,所以這裏先對maven進行介紹。
maven介紹
1)是一種特殊的JAVA project,經過maven建立後的項目上面會有一個M字樣的標誌,以下圖所示。
2)在maven中集成了junit測試包,應該說maven能夠集成任何你想的到或者想不到工具插件。
3)優點:若是不是maven項目,若是使用到某個JAR包,就須要手動就添加,但經過maven建立的項目就不須要。
4)做用:可進行編譯,打包,也能夠進行模塊管理
如何建立maven項目
第一步:
在eclipse中點擊new->other來建立一個maven項目
第二步:
在打開的的對話框中選擇Maven Project,而後點擊下一步
第三步:
勾選create a simple project,而後再點擊next
注意:
第一次使用maven時須要下載,若是速度慢須要等待很長一段時間
第四步:
在new maven project中填寫group id ,artifact id(文件夾名字),其它默認或者不填,而後finish
group id與artifact id解釋以下:
groupid和artifactId被統稱爲「座標」是爲了保證項目惟一性而提出的,若是你要把你項目弄到maven本地倉庫去,你想要找到你的項目就必須根據這兩個id去查找。
groupId通常分爲多個段,這裏我只說兩段,第一段爲域,第二段爲公司名稱。域又分爲org、com、cn等等許多,其中org爲非營利組織,com爲商業組織。舉個apache公司的tomcat項目例子:這個項目的groupId是org.apache,它的域是org(由於tomcat是非營利項目),公司名稱是apache,artigactId是項目名稱即tomcat。
第 五步:
按以上步驟便可完成maven項目的建立了。
如下爲所建立的maven項目即test_junit各個文件夾的解釋:
1)src/main/java:存放JAVA代碼
2)src/main/resources:存放JAVA的資源文件
3)src/test/java:存放測試的JAVA代碼
4)src/test/resources:存放測試JAVA代碼須要用到的一些資源文件
5)pox.xml:用於描述maven項目的一些相關信息,好比:建立的test_junit的版本信息,Group Id,包的結構等等,均可以在pox.xml中查看到。
第六步:
如何經過maven引入須要用到的junit的jar包。
1)打開pox.xml文件,選擇pox.xml標籤
2)而後在pox.xml中輸入如下代碼,來引入相關的junit的JAR包,代碼以下:
<dependencies>
 <dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>4.11</version>
 </dependency>
 </dependencies>
注意:
這段代碼的意思是從中央倉庫拿到代碼後放到本地倉庫中。
中央倉庫的地址爲:
mvnrepository.com/artifact/org.hamcrest/hamcrest-core/1.3
本地倉庫查看方法:
windows->preferuserences->maven->user settings
而後保存後,從新打開test_junit項目,就能夠看到maven dependeccies,即所引入的jar包。
三、如何進行單元測試
一共有二種方法,分別以下:
方法一:
經過繼承類TestCase,測試方法必須以test開頭來命名
例如:
public class Demo1 extends TestCase{
public void test1(){
...
}
}
注意:這種方法中寫的全部的方法都必須是以test開頭,例如:testXXXX
執行上面的代碼後會在左邊顯示出這兩個測試方法是否執行成功。綠色表明執行成功,紅色表明執行失敗,且test1跟test2方法上面的會顯示X。
方法二:
須要在測試方法前面加入註解,而註解的類型分別以下:
@Test:代表這是一個測試方法
@Before:每執行一個測試方法前都會先執行被標註了此註解的方法
@After:每執行一個測試方法後都會先執行被標註了此註解的方法
@BeforeClass:測試用例初始化時執行被@BeforeClass標註的方法,只會執行一次
@AfterClass:當全部測試執行完畢以後,執行進行收尾工做,也就是執行被@AfterClass標註的方法,只會執行一次
格式:
@Test
public void method1(){
...
}
注意:
此時方法名能夠隨便寫,不用必定要寫成testXXX了。
例如:
public class Demo2 {
    @BeforeClass
    public static void method5(){
        System.out.println("Demo2.method5()");
    }
    @Before
    public void method3(){
        System.out.println("Demo2.method3()");
    }
    @Test
    public void method1(){
        System.out.println("Demo2.method1()");
    }
    @Test
    public void method2(){
        System.out.println("Demo2.method2()");
    }
    @After
    public void method4(){
        System.out.println("Demo2.method4()");
    }
    @AfterClass
    public static void method6(){
        System.out.println("Demo2.method6()");
    }
}
執行後的結果以下:
注意:
@BeforeClass與@AfterClass所標註的測試方法要定義成static類型才能被執行
四、斷言(Assert)
單元測試必需要用到斷言,被用來檢查非法狀況而不是錯誤狀況,即在該程序正常工做時毫不應該發生的非法狀況,用來幫助開發人員對問題的快速定位。
經常使用的API以下:
assertEquals(a,b):判斷兩個數據是否一致
assertNotEquals(a,b):判斷兩個數據是否不一致;
assertNull(object):查看對象是否爲空
assertNotNull(object):查看對象是否不爲空;
assertTrue(...):判斷當前運行結果是否爲真;
assertFalse(...):判斷當前運行結果是否爲假;
例如:
assertEquals(3, caculator.getResult());
用於判斷經過計算器計算的是否正確
 
五、打包類測試
介紹:
打包類測試,是把全部的測試類打包在一塊兒測試,即在測試方法前引入全部的測試類便可。
優勢:
能夠一次性的測試全部的方法,而不用一個一個的去跑了。
代碼格式以下:
@RunWith(Suite.class)
@Suite.SutieClasses({類1,類2,類3,...})
public class JunitTestAll {
}
例如:
六、斷言與異常的區別
斷言用在那些你知道絕對不會發生的事情上,可是由於人老是會犯錯誤,保不許你寫出來的東西跟你想的不同。因此assert用來捕捉的是程序員本身的錯誤。
但異常(exception)主要用於捕捉的是用戶或者環境的錯誤。
相關文章
相關標籤/搜索