验证是使用超类的实例调用方法,然后是子类

时间:2016-12-20 12:52:59

标签: java mockito

我有一个班级Foo和一个子班级Bar。我想验证我的服务(方法sendMessage(Foo foo))是否已发送类型为Foo的消息,然后发送Bar类型的消息。

我的第一个天真的尝试是:

verify(communicatorMock, times(1)).sendMessage(any(Foo));
verify(communicatorMock, times(1)).sendMessage(any(Bar));

但这显然会在Mockito中返回TooManyActualInvocations例外。由于Bar类型的任何对象也是Foo类型的对象,这确实有效:

verify(communicatorMock, times(2)).sendMessage(any(Foo));

我还没找到可以区分父母和子女课程的ResultMatcher,还是我错过了?还有另一种检查方法,而不必实际捕获参数吗?

0 个答案:

没有答案