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

问题描述 投票:1回答:1

我试图模拟私有静态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();     
    }
}
java mocking powermock
1个回答
1
投票

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

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

编辑:

要模拟类Model的静态方法,请遵循以下指令:https://github.com/powermock/powermock/wiki/mockstatic

© www.soinside.com 2019 - 2024. All rights reserved.