詳解Java之Junit入門案例(程式碼)
直接上程式碼示範:
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類別:
如果你直接在想要測試的class上右鍵的話可以直接勾選測試要方法如:
接著就是直接開始在裡面加方法了:
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)); } }
對,沒錯就是這麼簡單。如果你的類別沒問題的話,應該可以返回這樣的圖:
但是,有沒有發現,如果你在測試其他方法,如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入門案例(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!