Mockito验证失败.时代在召唤


class Display extends JFrame{
public void setImage(Image image) {
this.setIconImage(image);
}
}

测试

public class DisplayConfigurationTest {
@Mock
private DisplayConfiguration displayMock;
@Test
public void setFrame_Icon_shouldSetWindowIcon() throws Exception {        
displayMock.setImage(null);
verify(displayMock, times(1)).setIconImage(null);
}
}

测试抛出错误:

通缉但未被调用:displayMock.setIconImage(空);->在DisplayConfigurationTest.setFrame_Icon_sshouldSetWindowIcon(DisplayConfigurationTest.java)

然而,这个mock还有其他交互:displayMock.setImage(空);->DisplayConfigurationTest.setFrame_Icon_sshouldSetWindowIcon(DisplayConfigurationTest.java)

@Mock一个对象时,该对象的方法实际上停止工作。然后,您可以告诉mock在调用任何方法(包括callRealMethod())时应该发生什么。因此,在您的示例中,您可以检查是否调用了setImage()1次,但不会调用setIconImage()

您实际想要的是一个真正的Display(或DisplayConfiguration-从您的代码中不清楚),其中所有成员对象都是@Mocked。

或者,在当前代码中,您可以将其添加为测试方法的第一行:

when(displayMock.setImage(any())).thenCallRealMethod();

相关内容

  • 没有找到相关文章

最新更新