【发布时间】:2019-08-29 09:21:14
【问题描述】:
从类中声明的私有静态变量调用的模拟静态方法。
public class User{
private static int refresh = readConfig();
public static int readConfig(){
// db call
}
}
我尝试使用 powermockito 来模拟 readConfig 方法,但它不起作用。我需要在加载类时模拟 readConfig()。
PowerMockito.mockStatic(User.class);
PowerMockito.when(User.readConfig()).thenReturn(1);
请告诉我如何模拟 readConfig 方法。
【问题讨论】:
-
it is not working是一个相当广泛的声明。它并没有像预期的那样告诉我们实际发生的事情。如果没有 minimal reproducible example 澄清您的具体问题或其他详细信息以准确突出所做的事情,就很难重现问题,从而更好地理解所询问的内容。 -
在执行 PowerMockito.mockStatic(User.class) 时,它也在执行 readConfig 方法,并为与数据库语句相关的模拟提供错误。当时我们正在模拟 readConfig 类被调用。但在下一个声明中,我们正在嘲笑它。这就是为什么我明确提到我必须在类加载时模拟 readConfig()。
标签: junit mockito powermockito