java是否可以在静态类中注入mock
我有静态课。我正在使用JUnit和Mockito为一个静态方法编写JUnit。在该方法中,调用其他类级静态变量的函数。我想模拟这个函数调用。我的代码如下:
class ABC {
public static SomeVariable var;
public static Value getSomething() {
try {
Value val = var.getValue();
}
catch (Probable exceptions) { //Handle exceptions }
}
}
}
在Junit中,我写了以下内容来注入mock
@Mock
SomeVariable var;
@InjectMocks
ABC abcTest;
Mockito.when(var.getValue()).thenReturn(somevalue); //Getting compilation error here
abcTest.getSomething();
在模拟var.getValue()时,我得到的错误为“未处理的异常类型” 请告诉我如何解决这个问题
# 1 楼答案
我以前也一直在努力模仿静态方法。我对这个问题没有直接的解决办法,因为我用另一种方式解决了它。我删除了静态部分,因为在编写测试时,它导致了很多问题
但我的建议是查看PowerMock以模拟静态方法。 也许这对你来说很有趣