Powermockito:模拟静态方法

时间:2012-07-12 17:34:08

标签: java mockito powermock

我正在嘲笑静态方法如下:

class A{
    static String methodA(HashMap<String,Boolean> h){
        ...  
        Set<String> keys=h.entrySet();  
    }
}

Powermockito代码:

Powermockito.mockstatic(A.class);  
when(A.methodA(any(HashMap.class)).thenReturn("Hey");  

现在,当我不希望调用methodA进入函数definiton,但直接返回“嘿”。但是,这种情况并没有发生。尽管是mock,但是对methodA()的调用进入了它,因为我传递了any(HashMap.class),所以传递了一个空值。我得到NullPointerException。我做错了什么?

1 个答案:

答案 0 :(得分:4)

你需要在课堂上跟随:

@RunWith(PowerMockRunner.class)
@PrepareForTest({ A.class})
 class ATest {
 ....
}

注释@RunWith表示PowerMockRunner将用于执行测试用例。任何需要模拟静态或私有方法的类都会进入@PrepareForTest,在本例中为:A类。