【发布时间】:2013-06-26 12:29:30
【问题描述】:
如下图,我想查看 mock.fireEvent() 是否被特定事件调用(此处为 event2)
mock.fireEvent(event1);
mock.fireEvent(event2);
verify(mock).fireEvent(matcherToCheckTheFieldOfEvent2);
但是得到一个错误提示
verify(mock).fireEvent(matcherToCheckTheFieldOfEvent2);
将尝试匹配第一个调用
mock.fireEvent(argThat(event1));
问题是如何让event2得到匹配?
Matcher 看起来像这样:
private class IsEvent2 extends ArgumentMatcher<Event2>
{
@Override
public boolean matches(Object arg)
{
return ((Event2) arg).methodGotCalled();
}
}
【问题讨论】:
-
能否请您添加您收到的确切错误消息?添加更多的junit测试代码也会有所帮助。
-
完整的测试代码很多,主要思想是捕获事件的类型是Event1,不能转换为Event2,我添加了Matcher代码