我正在尝试模拟私有静态final字段,但该类有一个调用class.getPackage()的方法,当我使用@PrepareForTest时返回null。
package a.b.c.d;
public class Model {
private static final String abc = createNewString();
private static String createNewString() {
return Model.class.getPackage().getName();
}
}
@RunWith(PowerMockRunner.class)
public class ModelTest {
@Test
@PrepareForTest()
public void test() throws Exception {
new Model();
}
}
答案 0 :(得分:1)
方法getPackage返回类的包,如果存档或代码库中没有包信息,则返回null。
修复错误,在包内定义类 Model 。
修改强>
要模拟类 Model 的静态方法,请按照以下说明操作:https://github.com/powermock/powermock/wiki/mockstatic