Почему JUnit тестирует работу Mockito без определения & ldquo; when & rdquo; метод?

Как насчет этого:

times['days_since'] = max(list(df.index.values))  
times['days_since'] = times['days_since'] - times['months']  
times
1
задан lamwaiman1988 13 July 2018 в 08:30
поделиться

2 ответа

Если вы явно не измените поведение макета по умолчанию, оно вернет «хорошие значения» . Для коллекции возвращаемое по умолчанию значение представляет собой пустую коллекцию, поэтому вам не нужно явно использовать вызов when для возврата таких пустых коллекций, как ваш код с комментариями.

3
ответ дан david a. 17 August 2018 в 13:22
поделиться
  • 1
    Если вы посмотрите на myDao obkect в режиме отладки, вы увидите, что объект является макетным объектом. И поведение по умолчанию для mock-объекта для коллекции - это возврат пустой коллекции. Но я предпочитаю использовать для получения пустой коллекции. – Olgun YILDIZ 13 July 2018 в 08:30

Что произойдет, если myDao.someMethod () вызывается, когда он не настроен?

С обычным mockito (поэтому без использования шпиона, вызывающего метод чтения), он не будет вызывать никаких исключений или ошибок, он просто реализует этот метод как пустой объект. Затем, если метод объявлен как void, дополнительное поведение не требуется, и если метод объявлен с типом возвращаемого значения, он возвращает значение по умолчанию объявленного типа, которое является ссылкой null для объектов, но для коллекций, где Mockito возвращает пустой экземпляр из них и, наконец, значения по умолчанию для примитивов.

Но обратите внимание, что в целом эта функция Mockito не вызывает какого-либо побочного эффекта в вашей тестовой логике, поскольку обычно вы хотите утверждать содержание списков, а не только их недействительность. Но в вашем случае вы издеваетесь над пустым списком:

when(myDao.listSomeObjectTypeB()).thenReturn( Collections.<SomeObjectTypeB>emptyList() );
1
ответ дан davidxxx 17 August 2018 в 13:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: