相关疑难解决方法(0)

构造函数中的可覆盖方法调用有什么问题?

我有一个Wicket页面类,它根据抽象方法的结果设置页面标题.

public abstract class BasicPage extends WebPage {

    public BasicPage() {
        add(new Label("title", getTitle()));
    }

    protected abstract String getTitle();

}
Run Code Online (Sandbox Code Playgroud)

NetBeans通过消息"构造函数中的可覆盖方法调用"警告我,但它应该有什么问题呢?我能想象的唯一选择是将其他抽象方法的结果传递给子类中的超级构造函数.但是很多参数很难读懂.

java oop inheritance constructor overriding

366
推荐指数
4
解决办法
12万
查看次数

PowerMock + Mockito VS Mockito一个人

任何人都可以总结一下,具体功能是什么让你在Mockito上添加PowerMock?

到目前为止,我发现了这些:

  • 模拟静态,最终和私有方法
  • 删除静态初始化程序
  • 允许在没有依赖注入的情况下进行模拟 - 这一点对我来说并不清楚.你能详细说说吗?

它是否添加了其他内容?你能用几行总结一下吗?

使用PowerMock时是否需要牺牲一些东西?

java mocking mockito powermock

51
推荐指数
3
解决办法
3万
查看次数

Java:模拟调用外部库来测试构造函数

我正在尝试对ClassA(String)以下ClassA类的构造函数进行单元测试:

import ExternalObject;

class ClassA{

    private ExternalObject externalObject;

    public ClassA() {
        super();
    }

    public ClassA(String string) {
        super();
        this.externalObject = new ExternalObject().parseString(string);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想模拟该new ExternalObject().parseString(string)调用并使用示例ExternalObject对象对其进行存根。

我研究过 Mockito,但似乎用 Mockito 不可能完成这项任务,因为:

  • Mockito 只能模拟方法,不能模拟方法内的语句。
  • Mockito 要求在模拟对象之前先创建对象。在开始模拟之前,Mockito 需要该类的一个实例。因此,即使我将new ExternalObject().parseString()调用放在 ClassA 类中的单独方法中,如果没有 ClassA 实例,我也无法调用它。

是否可以在 Mockito (或任何其他模拟库)中执行此操作而无需重写大量代码?我愿意对代码进行小的更改,以使其更易于测试。

java unit-testing mockito

2
推荐指数
1
解决办法
5712
查看次数