JMock ожидает пользовательский класс

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

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

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

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

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

Спасибо


person BDFun    schedule 21.05.2012    source источник
comment
есть ли у CustomEvent соответствующая реализация equals()?   -  person kem    schedule 22.05.2012


Ответы (1)


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

person Steve Freeman    schedule 22.05.2012
comment
Спасибо вам и kem за ответ. Как только я реализовал метод equals внутри myCustomEvent, все заработало. - person BDFun; 22.05.2012