如何验证使用mockito的kotlin可变参数函数
我在界面中有一个这种形式的kotlin函数:
fun foo(bar: String, vararg baz: Pair<String, ByteArray>):Boolean
使用Mockito来模拟这个接口,我如何验证这个函数被调用没有对?
它不能使第二个匹配器关闭,因为那么Mockito抱怨说它需要两个匹配器。
使用任何any*()
匹配器,包括anyVararg()
,由于输入而失败。
一个非答案给予一些启发:
请记住,Mockito不知道或不在乎某些Kotlin源代码文件中的内容。
Mockito只处理编译的字节码。 换句话说:Mockito查看最终的类文件; 由kotlin编译器创建。
因此:你的第一站应该是javap
来反汇编包含该方法定义的类文件。 你检查那里的方法的签名; 这应该告诉你如何为Mockito指定正确的参数匹配器。
还有一个想法:java varargs translate arrays。 所以“否”参数意味着:一个空的数组。 所以你可能想特别匹配像empty array of Pairs
。