如何模拟由静态方法设置的最终静态变量?

How to mock a final static variable that is being set by a static method?

我看过其他与此类似的问题,但他们没有这个确切的用例。

如果我有如下代码:

private static final String SOME_CONSANT = SomeStaticClass.getString();

我将如何模拟它以使其不总是 return 空指针异常?我尝试了以下方法,但它似乎不起作用。

PowerMockito.mockStatic(SomeStaticClass.class);
when(SomeStaticClass.getString(Mockito.anyString())).thenReturn("test");

我很茫然。感谢对此的任何帮助。

我认为你的主要问题是你试图模拟不同的方法。

使用此代码 when(SomeStaticClass.getString(Mockito.anyString())).thenReturn("test"); 模拟方法 SomeStaticClass.getString(String parameter),但是,在您的原始代码中您有 SomeStaticClass.getString().