Mockito doReturn: неоднозначная ссылка на перегруженное определение - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь портировать систему Scala на Mockito2.Есть несколько тестовых случаев, которые используют doReturn, и теперь в Mockito 2.18.0 я получаю эту ошибку:

Error:(34, 5) ambiguous reference to overloaded definition,
both method doReturn in object Mockito of type (x$1: Any, x$2: Object*)org.mockito.stubbing.Stubber
and  method doReturn in object Mockito of type (x$1: Any)org.mockito.stubbing.Stubber
match argument types (com.twitter.util.Future[Unit])
doReturn(Future.Unit).when(f.adapterSpy).myFunction(userData, Some(offerId), Always)

При просмотре Mockito.java, doReturn действительно перегружено так:

public static Stubber doReturn(Object toBeReturned) 
public static Stubber doReturn(Object toBeReturned, Object... toBeReturnedNext)

Как на земле это не всегда неоднозначно?Как сделать так, чтобы он компилировался?

Спасибо

Ответы [ 3 ]

0 голосов
/ 23 июля 2018

Это немного саморекламы, но я только что опубликовал библиотеку под названием mockito-scala, которая решает эту проблему и многие другие, является частью экосистемы mockito, поэтому, надеюсь, должна стать стандартной по умолчанию при работе со Scala, вы можете найти ее здесьhttps://github.com/mockito/mockito-scala с информацией для получения зависимости и какие проблемы она действительно решает.

Специально для вашей проблемы, вы можете написать этот код, и он будет работать из коробки

doReturn(Future.successful(())).when(f.adapterSpy).myFunction(userData, Some(offerId), Always)

Я изменил способ выражения будущего только потому, что это правильный способ создать законченное будущее Юнита

0 голосов
/ 13 декабря 2018

В качестве временного решения вы можете сделать следующее:

trait MockitoHelper extends MockitoSugar {
  def doReturn(toBeReturned: Any): Stubber = {
    Mockito.doReturn(toBeReturned, Nil: _*)
  }
}

Затем сделайте свой тестовый микс в этом MockitoHelper.

0 голосов
/ 21 июня 2018

В журнале Scala есть билет.см https://github.com/scala/bug/issues/4775

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