Проверка подлинности и копия очищенного массива - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть процедура, которая делает следующее:

public void onEvent(List<Dto> pendingData)
    {          
      eventDao.saveBatch(pendingData);
      pendingData.clear();
    } 

В своем тесте рутины я использую @Mock для eventDao:

@Mock
private EventDAO eventDao;

@Test
public void onEvent() {
    // some preparations
    handler.onEvent(testEvents);  
    // eventsExpectedToBePassed is the same as testEvents but it is an
    // independent object populated separately
    verify(eventDao, times(1)).saveBatch(eventsExpectedToBePassed);
}

Ошибка проверки с информацией о том, что процедура была вызвана с пустым массивом Вероятно, это происходит потому, что Mockito просто хранит ссылку на массив, переданный макету, и, как вы можете видеть из кода onEvent, этот массив очищается в ходе последующего выполнения. Если я получу копию, позвонив вместо этого

 eventDao.saveBatch(new ArrayList(pendingData));

тогда тест проходит нормально. Однако мне нравится избегать этого, поскольку это дополнительная операция, которая мне не нужна.

Как я могу сказать Mockito сохранить копию переданного массива, а не сам массив, поэтому, когда массив очищен, в тестовом коде У меня есть это для подтверждения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...