進入myeclipse,隨便創建一個項目:如圖
右擊SuanShu.java,選擇new》Junit text cast(如果在new中找不到,就直接new》other中搜索),跳出如下框:
點擊finish(我這裏的finish是黑色,原因是我之前就建好了)。
在生成的SuanShuTest測試類中寫入:
package cn.itcast.jisuan;
import static org.junit.Assert.*;
import junit.framework.Assert;
import org.junit.Test;
public class SuanShuTest {
@Test
public void test() {
SuanShu suanshu= new SuanShu();
Assert.assertEquals(2, suanshu.add(1, 1));
}
}
在SuanShu類的代碼爲:
package cn.itcast.jisuan;
public class SuanShu {
public int add(int a,int b){
int c =a+b;
return c;
}
}
在“Assert.assertEquals(2, suanshu.add(1, 1));”這段代碼的意思就是判定結果,判定輸出值和期望值是否一致,如果一致,就表明代碼沒有問題,如果不一致,就說明代碼有問題或者代碼的邏輯結構不是我們所需要的。在這裏“2”表示的是期望值,”suanshu.add(1, 1)“則是輸出值。
如果不用判斷結果,可以直接輸出:
package cn.itcast.jisuan;
import static org.junit.Assert.*;
import junit.framework.Assert;
import org.junit.Test;
public class SuanShuTest {
@Test
public void test() {
SuanShu suanshu= new SuanShu();
//Assert.assertEquals(2, suanshu.add(1, 1));
System.out.print(suanshu.add(1, 1));
}
}
測試:右擊SuanShuTest ,選擇Run Ass>>Junit Text就可進行單元測試。
圖下圖:
解析如上圖所示。
在我們進行測試的時候,有時測試代碼重複性過高,在測試的時候過於繁瑣,比如多次請求輸入輸出流以及釋放資源。這時候,junit提供兩個註解來幫我們處理這些繁瑣的代碼,分別是@before和@after。@before是在單元測試之前先執行的代碼塊;@after是在單元測試之後執行的代碼,主要用於資源的釋放,而且在@Text單元測試代碼塊出錯的時候,@after註解的代碼塊也會執行。
package cn.itcast.jisuan;
import static org.junit.Assert.*;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class SuanShuTest {
@Before
public void init(){
System.out.println("init...");
}
/**
* 釋放資源方法:
* 在所有測試方法執行完後,都會自動執行該方法
*/
@After
public void close(){
System.out.println("close...");
}
@Test
public void test() {
SuanShu suanshu= new SuanShu();
System.out.print(suanshu.add(1, 1));
Assert.assertEquals(3, suanshu.add(1, 1));
}
}
通過學習Junit代碼測試模塊,我們可以省去測試帶來的麻煩,使我們的更加高效的編寫代碼以及測試代碼。