您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 >
利用Eclipse進行單元測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/2/19 15:20:35 ] 推薦標簽:

第四個類是測試類:ServiceClassTest(實現(xiàn)的性質(zhì)已經(jīng)被盡可能地簡化)。清單 1 將顯示第四個類的代碼。

清單 1. 服務(wù)類的樣例代碼

               
public class ServiceClass {
  public ServiceClass(){
  //no-args constructor 
  }

  public boolean runService(ICollaborator collaborator){
  if("success".equals(collaborator.executeJob())){
    return true;
  }
  else
  {
    return false;
  }
}
}


在 ServiceClass 類中,if...else 代碼塊是一個簡單的邏輯分支,根據(jù)測試期望說明選取一條路經(jīng) —— 而不是另一條路經(jīng) —— 之后測試將失。ɑ蛲ㄟ^)的原因。下面顯示了 Collaborator 類的源代碼。

清單 2. Collaborator 類的樣例代碼

               
public class Collaborator implements ICollaborator{
   public Collaborator(){
     //no-args constructor
   }
   public String executeJob(){
     return "success";
   }
}


Collaborator 類也十分簡單,它配有無參數(shù)的構(gòu)造函數(shù)以及從 executeJob() 方法返回的簡單 String。下面的代碼顯示了 ICollaborator 類的代碼。

public interface ICollaborator {
    public abstract String executeJob();
}


接口 ICollaborator 有一個必須在 Collaborator 類中實現(xiàn)的方法。

以上代碼緒后,讓我們繼續(xù)檢驗怎樣在各種場景中成功地運行 ServiceClass 類的測試。

回頁首

場景 1:使用 jMock 模擬接口

測試 ServiceClass 類中的服務(wù)方法十分簡單。假定測試要求為證明 runService() 方法并未運行 —— 換言之,返回的布爾結(jié)果是 false。在這種情況下,傳遞給 runService() 方法的 ICollaborator 對象被模擬 為期望調(diào)用 executeJob() 方法,并返回除了 “success” 以外的字符串。通過這種方法,確保把布爾字符串 false 返回給測試。

下面所示的是包含測試邏輯的 ServiceClassTest 類代碼。

清單 3. 場景 1 的 ServiceClassTest 類樣例代碼

               
import org.jmock.Mock;
import org.jmock.cglib.MockObjectTestCase;
public class ServiceClassTest extends MockObjectTestCase {
  private ServiceClass serviceClass;
  private Mock mockCollaborator;
  private ICollaborator collaborator;
 
  public void setUp(){
    serviceClass = new ServiceClass();
    mockCollaborator = new Mock(ICollaborator.class);
  }
 
  public void testRunServiceAndReturnFalse(){
    mockCollaborator.expects(once()).method
              ("executeJob").will(returnValue("failure"));
    collaborator = (ICollaborator)mockCollaborator.proxy();
    boolean result = serviceClass.runService(collaborator);
    assertFalse(result);
  }
}


編寫測試的時機

用測試模擬框架運行您自己的測試的佳方法是利用 test-first 靈活方法。首先創(chuàng)建測試并設(shè)定期望。僅在測試失敗后才編寫實現(xiàn)以修正測試。當(dāng)測試運行正常時,您將編寫另一個測試以檢查稍后添加到待測試的類中的功能。

上一頁1234567下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd