2012-05-21 4 views
1

У меня есть следующие ожидания в тестовом JUnit класса:JMock Ожидая пользовательский класс

CustomEvent myCustomEvent = new CustomEvent(data1, data2); 
m_context.checking(new Expectations() {{ 
    oneOf(handler).somethingHappened(myCustomEvent); }}); 

В классе, который проходит испытания, я звоню handler.somethingHappened с экземпляром CustomEvent, используя те же аргументы в тестовом классе , Однако JMock требует неожиданного вызова, когда это происходит в тестируемом классе.

Ошибка JMock показывает ссылку на объект различия, которая была создана в классе, поэтому я предполагаю, что именно поэтому у меня есть неожиданная ссылка.

Мой вопрос в том, как я могу изменить свое ожидание, чтобы проверить, что объекты на самом деле равны? Равно быть содержимым объекта, а не ссылкой на память.

Благодаря

+0

У 'CustomEvent' есть соответствующая реализация' equals() '? – kem

ответ

1

как myCustomEvent связана с той, которая появляется в коде во время теста? Совпадение по умолчанию - это вызов equals(), в противном случае вы должны использовать совпадение, чтобы описать это отношение (и не забудьте пункт with)

+0

Спасибо вам, и kem за ответ. Когда я реализовал метод 'equals' внутри' myCustomEvent', все сработало. – BDFun

Смежные вопросы