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


1、什么是Junit
Junit即單元測試,是JAVA語言的單元測試框架,是對程序的一個方法所進行的測試
一般都是由程序員自己通過Junit來進行測試,因此單元測試也叫程序員測試;
如果測試人員熟悉程序員的代碼邏輯也可以進行接口測試,可用於進行接口測試,即白盒測試。
2、如何使用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包。
3、如何進行單元測試
一共有二種方法,分別如下:
方法一:
通過繼承類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類型才能被執行
4、斷言(Assert)
單元測試必須要用到斷言,被用來檢查非法情況而不是錯誤情況,即在該程序正常工作時絕不應該發生的非法情況,用來幫助開發人員對問題的快速定位。
常用的API如下:
assertEquals(a,b):判斷兩個數據是否一致
assertNotEquals(a,b):判斷兩個數據是否不一致;
assertNull(object):查看對象是否為空
assertNotNull(object):查看對象是否不為空;
assertTrue(...):判斷當前運行結果是否為真;
assertFalse(...):判斷當前運行結果是否為假;
例如:
assertEquals(3, caculator.getResult());
用於判斷通過計算器計算的是否正確
 
5、打包類測試
介紹:
打包類測試,是把所有的測試類打包在一起測試,即在測試方法前引入所有的測試類即可。
優點:
可以一次性的測試所有的方法,而不用一個一個的去跑了。
代碼格式如下:
@RunWith(Suite.class)
@Suite.SutieClasses({類1,類2,類3,...})
public class JunitTestAll {
}
例如:
6、斷言與異常的區別
斷言用在那些你知道絕對不會發生的事情上,但是因為人總是會犯錯誤,保不准你寫出來的東西跟你想的不一樣。所以assert用來捕捉的是程序員自己的錯誤。
但異常(exception)主要用於捕捉的是用戶或者環境的錯誤。
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM