我在界面中有这种形式的kotlin函数:
fun foo(bar: String, vararg baz: Pair<String, ByteArray>):Boolean
使用Mockito模拟此界面,如何验证是否在没有Pairs的情况下调用此函数?
它不起作用,让第二个匹配器关闭,因为Mockito抱怨它需要两个匹配器。
使用任何any*()
匹配器(包括anyVararg()
)都会因输入而失败。
答案 0 :(得分:2)
给出一些灵感的答案:
请记住,Mockito并不知道或关心您在某些Kotlin源代码文件中所写的内容。
Mockito仅处理已编译的字节代码。换句话说:Mockito查看最终的类文件;由kotlin编译器创建。
因此:您的第一站应该是javap
来反汇编包含该方法定义的类文件。你检查方法的签名那里;那应该告诉你如何为Mockito指定正确的参数匹配器。
还有另外一个想法:java varargs翻译数组。所以&#34;不&#34; args表示:一个空数组。因此,您可能希望特别匹配empty array of Pairs
。