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 に答える