Junit 如何在模拟对象中调用另一个方法

Junit 如何在模拟对象中调用另一个方法,junit,mocking,mockito,Junit,Mocking,Mockito,我有对象面板里面是方法 protected Confirmation confim() { Confirmation confirmation = new Confirmation() { @Override public void onConfirm() { doCancel(); } }; return confirmation; } protected void doCanc

我有对象面板里面是方法

protected Confirmation confim() {
    Confirmation confirmation = new Confirmation() {
        @Override
        public void onConfirm() {
            doCancel();
        }
    };

    return confirmation;        
}

protected void doCancel() {
    ....
}
我需要检查confirm()调用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 dont call panel.confirm().onConfirm(); 这是个愚蠢的错误。。
所以请删除这个问题。

它调用了一个名为
doCancel
的方法,而不是cancel,这是一个打字错误还是
cancel()
doCancel
中调用了
cancel(),这是一个愚蠢的错误,因为我没有调用panel.confirm().onConfirm();所以请删除这个问题谢谢我发现它也。。。但是太晚了,这是一个愚蠢的错误。。这个问题应该是deleted@x3mik一般来说,我们不会因此而删除问题,只是接受答案,如果其他人犯了同样的错误,这可能会帮助他们
 @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();
}`