Java 在继承的情况下,如何使用Mockito进行单元测试?

Java 在继承的情况下,如何使用Mockito进行单元测试?,java,unit-testing,mockito,Java,Unit Testing,Mockito,我有三门课要考。事实上,我需要编写一些单元测试来覆盖这个类的所有功能。但问题是我不知道从哪一点开始。在我的例子中,使用Mockito框架非常重要。因此,我将感谢任何帮助 这是我的课 public class Girl extends Father { protected Girl(Info info) { super(info); } public Boy create(String param) { return new Boy(in

我有三门课要考。事实上,我需要编写一些单元测试来覆盖这个类的所有功能。但问题是我不知道从哪一点开始。在我的例子中,使用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);
    }
}
信息类(这个类我不需要测试)

父亲阶级 公共抽象类父亲{

    protected final Info info;

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

如果你想测试构造函数或静态方法,你应该看看目前在Mockito的补充中使用的工具,以处理那些Mockito不容易使用的用例。参考页面有很多文档和指向示例的指针。最有趣的页面(如你所说的Mockito)应该是

这里没有Mockito或PowerMock可以做的事情。您可以测试的唯一条件是,
女孩
类中的
创建
用正确的
信息和
参数创建一个新的
男孩
。假设您有合适的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
方法之外,你没有任何值得测试的方法。

Girl
扩展了
Father
?我思想开放,但我觉得这里有点不对劲……这里似乎没有太多需要测试的地方。你为什么认为你需要使用Mockito?你想测试什么?我收到的一个建议是:要检查是否使用
super(Info)将
Info
实例实际传递给
Father
Girl
类中。您想测试什么,到目前为止您尝试了什么?我发现这个答案有点误导。Powermock将帮助您存根或验证构造函数或静态方法;但它无助于实际测试它们。测试构造函数和静态方法需要与测试任何其他方法相同的技术。@DavidWallace你是对的。如果你觉得在评论中说这些是不够的,请随意编辑我的帖子。
@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());
}