i在接口中具有此表单的kotlin函数:
fun foo(bar: String, vararg baz: Pair<String, ByteArray>):Boolean
使用Mockito模拟此界面,我如何验证该功能是否在没有对的情况下调用?
它不起作用,将第二个匹配项关闭,因为随后摩索哥抱怨它需要两个匹配者。
使用任何any*()
匹配器,包括anyVararg()
,由于键入而失败。
一个非答案提供一些灵感:
请记住,Mockito不知道或关心您在某些Kotlin源代码文件中写的内容。
Mockito仅处理编译字节代码。换句话说:莫科托(Mockito(看着最后的classfile;由Kotlin编译器创建。
因此:您的第一站应该是javap
,以拆卸包含该方法定义的类文件。您可以检查方法的签名;这应该告诉您如何指定正确的参数匹配者到Mockito。
只是另一个想法:Java Varargs翻译数组。因此,"否" args表示:一个空数组。因此,您可能想在诸如empty array of Pairs
之类的东西上专门匹配。