如何使用mockito验证kotlin varargs的功能

时间:2017-05-04 16:34:09

标签: mockito kotlin

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

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

使用Mockito模拟此界面,如何验证是否在没有Pairs的情况下调用此函数?

它不起作用,让第二个匹配器关闭,因为Mockito抱怨​​它需要两个匹配器。

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

1 个答案:

答案 0 :(得分:2)

给出一些灵感的答案:

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

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

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

还有另外一个想法:java varargs翻译数组。所以&#34;不&#34; args表示:一个空数组。因此,您可能希望特别匹配empty array of Pairs

之类的内容