验证是否使用任何参数调用方法

时间:2012-06-14 18:33:37

标签: java unit-testing mocking mockito

我的经理类中有一个简单的更新方法,我需要验证是否触发了事件。

public void editUser(User user) {
       entityManager.merge(user);
       entityManager.flush();
       updateEvent.fire(new UserEvent(user));
}

通常我会通过verify方法执行此操作,但在这种情况下,使用UserEvent的新实例作为参数调用event.fire()。

verify(event).fire(new UserEvent(user));

这将失败,因为事件是在管理器内使用不同的UserEvent实例触发的。有没有办法验证这个方法调用?

2 个答案:

答案 0 :(得分:3)

The easiest way is to use any(Class<T>)

verify(event).fire(any(UserEvent.class))

答案 1 :(得分:0)

如果UserEvent(并且取决于实施User)实施equals(...),那么它应该有效。