我试图模拟私有静态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();
}
}
方法getPackage返回类的包,如果归档或代码库中没有可用的包信息,则返回null。
要修复错误,请在包内定义类Model。
编辑:
要模拟类Model的静态方法,请遵循以下指令:https://github.com/powermock/powermock/wiki/mockstatic