• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • (二)利用 Eclipse 進行單元測試

    發表于:2009-04-02來源:作者:點擊數: 標簽:單元eclipseEclipse
    測試 ServiceClass 類中的服務方法十分簡單。假定測試要求為證明 runService() 方法并未運行 —— 換言之,返回的布爾結果是 false。在這種情況下,傳遞給 runService() 方法的 ICollaborator 對象被模擬 為期望調用 executeJob() 方法,并返回除了 “success
    測試 ServiceClass 類中的服務方法十分簡單。假定測試要求為證明 runService() 方法并未運行 —— 換言之,返回的布爾結果是 false。在這種情況下,傳遞給 runService() 方法的 ICollaborator 對象被模擬 為期望調用 executeJob() 方法,并返回除了 “suclearcase/" target="_blank" >ccess” 以外的字符串。通過這種方法,確保把布爾字符串 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);
     }
    }
      如果將在各種測試用例中執行公共操作,則在測試中包括 setUp() 方法是一種很好的想法。包括 tearDown() 方法也很不錯,但不作嚴格要求,除非要運行集成測試。
    另請注意,使用 jMock 和 RMock,框架將在測試運行結束時或測試運行期間在所有模擬對象中檢查所有期望。并不實際需要為每個模擬期望包括 verify() 方法。當作為 JUnit 測試運行時,測試將通過,如下所示:

    圖 3. 場景 1 測試通過

           
      ServiceTestClass 類將擴展 jMock CGLIB 的 org.jmock.cglib.MockObjectTestCase 類。mockCollaborator 是一個十分簡單的 org.jmock.JMock 類。通常,用 jMock 生成模擬對象有兩種方法:
    • 要模擬接口,則使用 new Mock(Class.class) 方法
    • 要模擬具體類,則使用 mock(Class.class, "identifier") 方法
     

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>