2014-06-21 87 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你是对的。如果您觉得在评论中不够充分,请随时编辑我的帖子。 –

相关问题