Robiac testy w JUnit4 musze sprawdzic czy funkcja poprawnie sortuje elementy. Tworze sobie dwa obiekty klasy Customer, ktore implementuja interfejs Comparable. Customer ma wlasna metode do porownywania, ale to teraz mniej istotne. Wykorzystalem tutaj EasyMock.
expect(customerMock.compareTo(customerMock2)).andReturn(1);
expectLastCall().anyTimes();
replay(customerMock);
expect(customerMock2.compareTo(customerMock)).andReturn(-1);
expectLastCall().anyTimes();
replay(customerMock2);
List<ICustomer> myList = new ArrayList<ICustomer>();
myList.add(customerMock);
myList.add(customerMock2);
((Shop) Shop.getInstance()).addCustomer(customerMock);
((Shop) Shop.getInstance()).addCustomer(customerMock2);
assertEquals(myList, Shop.getInstance().getSortedCustomers());
Po wywolaniu testu dostaje info
java.lang.AssertionError: Unexpected method call compareTo
Najwyrazniej występuje jeszcze jakies porownanie spoza: customerMock.compareTo(customerMock2) i customerMock2.compareTo(customerMock). O jakie porownanie chodzi? Jak to znalezc? Z gory dzieki za pomoc!