Java 可以在静态类中注入模拟吗
我有静态课。我正在使用JUnit和Mockito为一个静态方法编写JUnit。在该方法中,调用其他类级静态变量的函数。我想模拟这个函数调用。我的代码如下:Java 可以在静态类中注入模拟吗,java,unit-testing,junit,Java,Unit Testing,Junit,我有静态课。我正在使用JUnit和Mockito为一个静态方法编写JUnit。在该方法中,调用其他类级静态变量的函数。我想模拟这个函数调用。我的代码如下: class ABC { public static SomeVariable var; public static Value getSomething() { try { Value val = var.getValue(); } catch (Pro
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()时,我得到的错误为“未处理的异常类型”
请建议我如何解决这个问题。我以前也一直在努力尝试模拟静态方法。我对这个问题没有直接的解决办法,因为我用不同的方法解决了它。我删除了静态部分,因为在编写测试时,它导致了很多问题 但我的建议是看看模拟静态方法的方法。
在你的例子中,这可能很有趣。你能仔细检查一下你的示例代码吗;它有问题,但您在评论中提到的编译错误不在其中