首頁 > Java > java教程 > 主體

圖文Java之Junit入門案例(程式碼)

高洛峰
發布: 2017-03-12 09:29:46
原創
1300 人瀏覽過

詳解Java之Junit入門案例(程式碼)

直接上程式碼示範:

比方說你現在寫了一個ArrayList類別的方法:

public class ArrayList implements List { 
    private int size = 0;
    
    private Object[] elementData = new Object[100];
    
    public void add(Object o){
        
    }
    public void add(int index, Object o){
        
    }
    
    public Object get(int index){
        return Object;
    }
    
    public Object remove(int index){
        return Object;
    }
    
    public int size(){
        return -1;
    }  
}
登入後複製

現在要測試的話怎麼辦呢?這時候Junit利器就可以用到了;

首先我們先建立一個Junit類別:

圖文Java之Junit入門案例(程式碼)

如果你直接在想要測試的class上右鍵的話可以直接勾選測試要方法如:

圖文Java之Junit入門案例(程式碼)

接著就是直接開始在裡面加方法了:

public class ArrayListTest {

   // 这里的@Test是必须的注释,就是告诉JUnit这里就是一个测试方法
    @Test
    public void testGet() {
        static Object[] Data = new Object[]{1,2,3,4,5,6,7,8};
            ArrayList test;
                // 添加数据到test中
                .........
                ......... 

                //测试test 这里要说一下,
                //出了要assertEqual 判断值是否相等的话,其实还有assertFalse,assertNull等方法判断
                assertEqual(Data[1],test.get(1));
    }    
}
登入後複製

對,沒錯就是這麼簡單。如果你的類別沒問題的話,應該可以返回這樣的圖:

圖文Java之Junit入門案例(程式碼)

但是,有沒有發現,如果你在測試其他方法,如add,remove的話,都是要有一個預先填入了資料的ArrayList吧。難道我每次進行測試都需要執行這些嗎?

這樣就太冗餘了。這時候,JUnit裡自有高招:

public class ArrayListTest {

    static Object[] Data = new Object[]{1,2,3,4,5,6,7,8};
    ArrayList test;
       
    //这个before注释可以理解成:
    //在执行每个@Test修饰的方法前都先要执行这个setUp,等于前置条件一样
    @Before
    public void setUp() throws Exception{
        test = new ArrayList();
        for(Object data: Data){
            test.add(data);
        }
    }
        //test function ;

}
登入後複製

現在的話好像差不多行了,但是當有多個測試類別的時候怎麼辦,逐個運行?這不就跟創建main方法測試那樣差不多嗎?

所以Junit又提供了一個測試套件組:

//你现在有3个测试类
public class Test1{
    @Test
    public void test(){
        //...Test1
    }
}

public class Test2{
    @Test
    public void test(){
        //...Test2
    }
}
public class Test3{
    @Test
    public void test(){
        //...Test3
    }
}


//创建一个测试套件类(测试套件可以互相叠加的):
@RunWith(Suite.class)
@Suite.SuiteClasses({test1.class,test2.class,test3.class
                    })
public class SuitTest {
  //必须是public 修饰的,空类
}
登入後複製

除了上面寫的註解其實還有蠻多的,只是還沒用到就先不說了。 (太渣用不到這些,逃。),我就貼出來讓看官們瞅瞅先:

圖文Java之Junit入門案例(程式碼)

也就說這麼多吧,僅是入門而已。並沒有什麼高深的技術啊,思想什麼的。簡簡單單: -/。 

在最後想分享一句話:

測試案例是用來證明你是沒有錯的,而不是證明你是對的。

我個人覺得這話真的是說到心坎裡去了。


以上是圖文Java之Junit入門案例(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!