PrepareForTest导致class.getPackage()返回null,变通方法?

时间:2018-01-03 17:17:02

标签: java mocking powermock

我正在尝试模拟私有静态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();     
    }
}

1 个答案:

答案 0 :(得分:1)

方法getPackage返回类的包,如果存档或代码库中没有包信息,则返回null。

修复错误,在包内定义类 Model

修改

要模拟类 Model 的静态方法,请按照以下说明操作:https://github.com/powermock/powermock/wiki/mockstatic