【问题标题】:Mockito scala Ambiguous reference to overloaded definitionMockito scala 对重载定义的模棱两可的引用
【发布时间】:2020-04-16 19:11:10
【问题描述】:

我正在尝试使用下面的 mockito 在 scala 中模拟 resultset

val resultset = mock[java.util.ResultSet]

但是,当我尝试像下面那样模拟 getString 方法时,我得到 对重载定义错误的模糊引用,因为 getString 可以接受字符串或 int

(resultset.getString _).expects(any[String]).returns("test")

可能是什么问题?

【问题讨论】:

    标签: scala mocking mockito scalatest


    【解决方案1】:

    不妨试试这样的:

    Mockito.when(resultset.getString(any())) thenReturn "test"
    

     Mockito.when(resultset.getString(anyString())) thenReturn "test"
    

    【讨论】:

    • 模拟实际字符串怎么样? Mockito.when(resultset.getString("someString")) thenReturn "test"
    【解决方案2】:

    这是 Java/Scala 互操作的一个已知问题,请迁移到 mockito-scala 解决它。

    然后您可以使用 amer 发布的示例(仅使用特征中的方法,而不是 Mockito 类中的方法),或者您可以尝试 scala 语法

    resultset.getString(*) returns "test"
    

    【讨论】:

    • 感谢更新后的帖子。我虽然他正在使用它。竖起大拇指。
    猜你喜欢
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    相关资源
    最近更新 更多