You can mock a vararg method in MockK:
interface ClsWithManyMany {
fun manyMany(vararg x: Any): Int
}
val obj = mockk<ClsWithManyMany>()
every { obj.manyMany(*anyVararg()) } returns 2
println(obj.manyMany("testing", "testing")) // 2
How can I capture the values passed to that method? This doesn't work (and neither does capturing a mutableListOf<Array<Any>>()
):
val captured = slot<Array<Any>>()
every { obj.manyMany(*capture(captured)) } answers {
println ("arguments: ${captured.captured}")
2
}