下面介紹如何在Eclipse中使用JUnit進(jìn)行單元測(cè)試。
(1)在Eclipse中新建一個(gè)Java項(xiàng)目。 (2)右擊項(xiàng)目,在彈出的快捷菜單中選擇“構(gòu)建路徑/添加庫(kù)”命令,在彈出的“添加庫(kù)”對(duì)話框中選擇JUnit選項(xiàng),如圖1.45所示。(3)單擊“下一步”按鈕,在彈出的“JUnit庫(kù)”對(duì)話框中選擇JUnit庫(kù)版本為JUnit4,單擊“完成”按鈕,完成JUnit測(cè)試環(huán)境的搭建。
(4)創(chuàng)建一個(gè)名為Count的Java類,在該類中實(shí)現(xiàn)一個(gè)encrypt()方法,該方法用于將傳遞的整數(shù)進(jìn)行簡(jiǎn)單的加密,并返回加密后的值。創(chuàng)建Count類的代碼如下:
package com.yxq.tools;
public class Count {
public String encrypt(int input){
int temp=2*input+100;
String over="YXQ"+temp;
return over;
}
}
(5)測(cè)試Count類。右擊Count.java類文件,在彈出的快捷菜單中選擇“新建/JUnit測(cè)試用例”命令,在彈出的“JUnit測(cè)試用例”對(duì)話框中進(jìn)行圖1.46所示的設(shè)置。
(6)單擊“下一步”按鈕,在彈出的“測(cè)試方法”對(duì)話框中,選擇要測(cè)試的類中的方法,如圖1.47所示。
(7)單擊“完成”按鈕,完成測(cè)試類CountTest的創(chuàng)建。最終CountTest類的代碼如下:
package com.yxq.tools;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class CountTest {
@Before
public void setUp() throws Exception { //初始化方法,執(zhí)行CountTest類時(shí),先來(lái)執(zhí)行該方法
}
@After
public void tearDown() throws Exception { //清理方法,測(cè)試結(jié)束后執(zhí)行該方法
}
@Test
public void testEncrypt() { //在被測(cè)試的方法名前自動(dòng)加入test并使方法名的第一個(gè)字母大寫(xiě)
fail("尚未實(shí)現(xiàn)");
}
}
(8)對(duì)CountTest類進(jìn)行如下編碼:
private Count count;
@Before
public void setUp() throws Exception {
count=new Count(); //創(chuàng)建Count類對(duì)象
}
@After
public void tearDown() throws Exception {
count=null; //銷毀count對(duì)象
}
@Test
public final void testEncrypt() { //測(cè)試將整數(shù)10進(jìn)行加密后的結(jié)果是否為YXQ120
assertEquals("測(cè)試testEncrypt()方法失敗!",count.encrypt(10),"YXQ120");
}
上述代碼中的assertEquals()方法是org.junit.Assert類中的靜態(tài)方法。其用法如下:
assertEquals(String message,String expected,String actual)
其中,參數(shù)message表示斷言失敗輸出的信息,可以省略;expected表示期望的數(shù)據(jù);actual表示實(shí)際的數(shù)據(jù)。assertEquals()方法用來(lái)斷言expected表示的數(shù)據(jù)與actual表示的數(shù)據(jù)相等,若不等,則拋出異常并輸出由message表示的提示信息。
在Assert類中,常見(jiàn)的assertXxx()方法如表1.12所示。