tja*_*and 6 java scala mockito
我正在尝试将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)
Run Code Online (Sandbox Code Playgroud)
进入Mockito.java
,doReturn
确实像这样超载:
public static Stubber doReturn(Object toBeReturned)
public static Stubber doReturn(Object toBeReturned, Object... toBeReturnedNext)
Run Code Online (Sandbox Code Playgroud)
这在地球上怎么不总是模棱两可?如何进行编译?
谢谢
这也可以通过使用doAnswer
代替doReturn
// no good
doReturn(true).when(foo).bar()
// works
doAnswer(_ => true).when(foo).bar()
Run Code Online (Sandbox Code Playgroud)
作为临时的解决方法,您可以执行以下操作:
trait MockitoHelper extends MockitoSugar {
def doReturn(toBeReturned: Any): Stubber = {
Mockito.doReturn(toBeReturned, Nil: _*)
}
}
Run Code Online (Sandbox Code Playgroud)
然后让您的测试混入此MockitoHelper
。