【发布时间】:2017-01-05 01:08:53
【问题描述】:
我正在使用 Mockito 来模拟我正在为其编写测试的同一类中的方法。我在 SO (Mocking method in the same class) 上看到了其他答案,但我可能误解了它们,因为我遇到了问题。
class Temp() {
public boolean methodA(String param) {
try {
if(methodB(param))
return true;
return false;
} catch (Exception e) {
e.printStackTrace();
}
}
}
我的测试方法:
@Test
public void testMethodA() {
Temp temp = new Temp();
Temp spyTemp = Mockito.spy(temp);
Mockito.doReturn(true).when(spyTemp).methodB(Mockito.any());
boolean status = temp.methodA("XYZ");
Assert.assertEquals(true, status);
}
然而,由于方法 B 的定义被执行,我得到了打印出来的期望。 我的理解是使用 spyTemp 会嘲笑 methodB 的定义。然而,情况似乎并非如此。
谁能解释我哪里出错了?
【问题讨论】:
标签: java unit-testing mocking mockito