我的对象Panel里面是Methods
protected Confirmation confim() {
Confirmation confirmation = new Confirmation() {
@Override
public void onConfirm() {
doCancel();
}
};
return confirmation;
}
protected void doCancel() {
....
}
我需要检查确认()调用doCancel方法
我的测试
@Test
public void test() {
Panel panel = Mockito.mock(Panel.class);
Mockito.doCallRealMethod().when(panel).confirm();
Mockito.doCallRealMethod().when(panel).cancel();
panel.confirm();
Mockito.verify(panel).cancel();
}`
问题在于cancel()
永远不会被调用...也许是因为OnConfirm()
是一个被覆盖的方法而且它需要一个模拟...或者其他东西......有人可以帮助如何测试?
P.S。小组必须是模拟的。
问题是o不要调用panel.confirm()。onConfirm(); 这是个愚蠢的错误.. 所以请删除这个问题..
答案 0 :(得分:3)
@Test
public void test() {
Panel panel = Mockito.mock(Panel.class);
Mockito.doCallRealMethod().when(panel).confirm();
Mockito.doCallRealMethod().when(panel).cancel();
panel.confirm().onConfirm();
Mockito.verify(panel).cancel();
}`