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();
}`