3

我有里面的对象面板是方法

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()是一个被覆盖的方法并且它需要一个模拟......或者其他东西......有人可以帮助如何测试吗?

必须模拟 PS 面板。

问题是不要调用 panel.confirm().onConfirm(); 这是愚蠢的错误..所以请删除这个问题..

4

1 回答 1

4
 @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();
}`
于 2013-01-21T13:45:08.360 回答