使用 Mockito 使用 scala 传递匹配器和值



我的测试中有以下代码...

val list : List[MyClass] = List(new MyClass)
...
doNothing().when(localLib).handleDelete(anyString(), anyString(), anyInt(), eq(list))

这将引发以下编译异常

Error:(890, 83) type mismatch;
 found   : Boolean
 required: java.util.List[my.package.MyClass]
    doNothing().when(localLib).handleDelete(anyString(), anyString(), anyInt(), eq(list))
                                                                                  ^

你一定在用scalatest?与Mockito有冲突,其中一个*Spec特征定义了它自己的eq,你最终引用了它而不是Mockito匹配器。

尝试添加显式导入:import org.mockito.ArgumentMatchers.{ eq => mockitoEq }然后在需要匹配器时使用mockitoEq而不是eq

eq(list)确实是布尔值,请检查签名。你应该嘲笑最后一个参数:

doNothing().when(localLib)
  .handleDelete(anyString(), anyString(), anyInt(), any[List[MyClass]])

相关内容

  • 没有找到相关文章

最新更新