2014-06-21 121 views
0

我有三個需要測試的類。事實上,我需要編寫一些單元測試來涵蓋這些類的所有功能。但問題是我不知道從什麼時候開始。就我而言,使用Mockito框架非常重要。所以我會受到任何幫助appriciated。如何在繼承的情況下使用Mockito進行單元測試?

這裏是我的課

public class Girl extends Father { 

    protected Girl(Info info) { 
     super(info); 
    } 

    public Boy create(String param) { 
     return new Boy(info, param); 
    } 
} 

男孩類

public class Boy extends Father { 
    private final String param; 

    public Boy(Info info, String param) { 
     super(info); 
     this.param = param; 
    } 

    public void method(){ 
     new RemoteService().invoke(param); 
    } 
} 

信息類(這個類我並不需要測試)

public class Info { 
    private Integer accountNumber; 

    public Integer getAccountNumber() { 
     return accountNumber; 
    } 

    public void setAccountNumber(Integer accountNumber) { 
     this.accountNumber = accountNumber; 
    } 
} 

和父親類 公共抽象班級父親{

protected final Info info; 

    public Father(Info info) { 
     this.info = info; 
    } 
} 
+4

''女孩''延伸''父親'?我很開明,但我覺得這裏有些不對勁... –

+2

在這裏測試似乎不太多。 –

+2

你爲什麼認爲你需要使用Mockito?你想測試什麼? –

回答

0

Mockito或PowerMock在這裏沒有什麼可做的。您可以測試的唯一條件是Girl類中的create使用正確的infoparam創建新的Boy。假設你有適當的getter方法,你可以這樣做,在GirlTest類。不需要嘲笑。

@Test 
public void createMakesNewBoy() { 
    Info testInfo = new Info(); 
    Girl toTest = new Girl(testInfo); 
    Boy created = toTest.create("param"); 
    assertEquals("param", created.getParam()); 
    assertSame(testInfo, created.getInfo()); 
} 

除了create方法,你沒有,這是有道理的測試任何方法。

0

如果您想測試構造函數或靜態方法,您應該查看一個工具,如Powermock,它目前用於補充Mockito來處理那些Mockito不容易使用的用例。被引用的頁面有很多文檔和指向示例的指針。最有趣的頁面(如你所說的Mockito)應該是MockitoUsage

+0

我覺得這個答案有點誤導。 Powermock將幫助您**存根**或**驗證**構造函數或靜態方法;但它不會幫助實際**測試**它們。測試構造函數和靜態方法需要使用與測試其他方法相同的技術。 –

+0

@DavidWallace你是對的。如果您覺得在評論中不夠充分,請隨時編輯我的帖子。 –

相關問題