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