Mockito возвращает нулевое значение для Future

update() предназначен для отдельных объектов, а для переходных объектов. если вызывать на постоянных объектах, он будет вызывать NonUniqueObjectException, и это будет рассмотрено merge().

0
задан Manu Chadha 5 March 2019 в 05:56
поделиться

1 ответ

Проблема, видимо, заключалась в том, что я неправильно использовал when. Я читал, что «Mockito позволяет конфигурировать возвращаемые значения его макетов через свободный API. Неуказанные вызовы методов возвращают« пустые »значения:

null для объектов

0 для чисел

[ 1113] false для логического значения

пустых коллекций для коллекций

Моки могут возвращать разные значения в зависимости от аргументов, переданных в метод. используется для указания возвращаемого значения для вызова метода с предопределенными параметрами. "

when ожидает метод, а также точные аргументы. Поэтому, если я хочу позвонить findUser(userkey), где значение userkey, скажем, 1 в реальном вызове, мне нужно написать when(findUser(1)) или userKey=1; findUser(userKey)).

В моей неправильной реализации я установил userkey как

UserKeys (1, "test@test.com", loginInfo, "", "")

но вызов findUser был со значением

UserKeys (116, "d@d.com", loginInfo, "fn", "ln")

Я изменил значение userkey в тест и это сработало

val userKeys = UserKeys(utilities.bucketIDFromEmail(email)/*returns 116*/,"d@d.com",loginInfo,"fn","ln")

      when(mockUserRepository.findOne(userKeys)).thenReturn(Future{Some(user)})
      when(mockUserRepository.save(user)).thenReturn(Future(Some(user)))
0
ответ дан Manu Chadha 5 March 2019 в 05:56
поделиться
Другие вопросы по тегам:

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