Я пытаюсь использовать макет и проверять, что аргумент, переданный в макет, является правильным ArrayList<MyModel>
. Я определил метод boolean equals
на MyModel
, но я не могу найти подходящий помощник, который использует метод equals
. Матчи, которые я писал, сравнивают только с объектами object_id, которые явно отличаются друг от друга. Мой тест выглядит так:Hamcrest ArrayList matcher
MainActivity activity = mock(MainActivity.class);
MyRequest subject = new MyRequest(activity);
ArrrayList<MyModel> list = ...;
subject.makeRequest();
verify(activity).handleSuccess(argThat(is(list)));
Кто-нибудь знает Сличитель, который будет использовать булево равно на MyModel
?
Почему это не работает для вас? 'verify (activity) .handleSuccess (argThat (equalTo (expected)));' – aim
@aim сравнивает object_id, и поскольку вызываемый аргумент является другим экземпляром 'ArrayList', сравнение равенств возвращает false. – trev9065
Хм .. Я думал, что 'equalTo' вызывается равным на' ArrayList', а затем применяется к каждому элементу списка (например, этот 'java.util.AbstractList # equals') ... – aim