是否可以在静态类中注入Mocks

时间:2015-03-13 07:31:38

标签: java unit-testing junit

我有静态课程。我正在使用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
SomeVariable var;

@InjectMocks
ABC abcTest;

Mockito.when(var.getValue()).thenReturn(somevalue); //Getting compilation error here 
abcTest.getSomething();

在模拟var.getValue()时,我收到错误为'Unhandled Exception type' 请建议我如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

我之前一直在努力尝试模拟静态方法。我没有直接解决问题的方法,因为我以不同的方式解决了这个问题。我删除了静态部分,因为它在我编写测试时导致了很多问题。

但我的建议是看PowerMock来模拟静态方法。 也许这对你的情况很有意思。