【问题标题】:How to verify kotlin varargs function using mockito如何使用 mockito 验证 kotlin varargs 函数
【发布时间】:2017-05-04 16:34:08
【问题描述】:

我在一个界面中有一个这种形式的kotlin函数:

fun foo(bar: String, vararg baz: Pair<String, ByteArray>):Boolean

使用 Mockito 模拟这个接口,如何验证这个函数是在没有 Pairs 的情况下调用的?

将第二个匹配器关闭是行不通的,因为 Mockito 抱怨它需要两个匹配器。

使用任何any*() 匹配器(包括anyVararg())都会因键入而失败。

【问题讨论】:

标签: mockito kotlin


【解决方案1】:

一个非回答给一些灵感:

请记住,Mockito 不知道也不关心您在某些 Kotlin 源代码文件中编写的内容。

Mockito 只处理 编译 字节码。换句话说:Mockito 查看最终的类文件;由 kotlin 编译器创建。

因此:您的第一站应该是javap,以反汇编包含该方法定义的类文件。你检查那里方法的签名;这应该会告诉您如何为 Mockito 指定正确的参数匹配器。

还有一个想法:java varargs 转换数组。所以“no” args 意味着:一个空数组。所以你可能想专门匹配empty array of Pairs之类的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    相关资源
    最近更新 更多