有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    我以前也一直在努力模仿静态方法。我对这个问题没有直接的解决办法,因为我用另一种方式解决了它。我删除了静态部分,因为在编写测试时,它导致了很多问题

    但我的建议是查看PowerMock以模拟静态方法。 也许这对你来说很有趣