无法使用JMockit模拟静态方法

时间:2017-04-24 13:32:43

标签: java unit-testing methods static jmockit

我正在编写一个包含模拟静态方法的测试用例。虽然无法达到预期的效果。

true

}

但是在为getAppName声明时,它失败了。在上面的代码中,我能够模拟超类构造函数,但无法模拟Util.getAppName()。

我是JMockit的新手,因此非常感谢帮助。

1 个答案:

答案 0 :(得分:2)

我认为问题是SuperClass@Mocked因此MockUp<Util>未应用。

这可以按预期工作(更改已注释掉):

public void mockSuperClassTest(/*@Mocked final SuperClass superClass*/) {
  //same code here
}

class SuperClass {
  public final static String app = Util.getAppName();
  public SuperClass(String data) {
    //throw new IllegalArgumentException();
  }
  public String getApp() {
    return app;
  }
}