我正在嘲笑静态方法如下:
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
。我做错了什么?
答案 0 :(得分:4)
你需要在课堂上跟随:
@RunWith(PowerMockRunner.class)
@PrepareForTest({ A.class})
class ATest {
....
}
注释@RunWith表示PowerMockRunner将用于执行测试用例。任何需要模拟静态或私有方法的类都会进入@PrepareForTest,在本例中为:A类。