Mockk:无法为方法调用指定答案

问题描述

我在Kotlin类中有以下方法调用

myService.trigger(id,processVariables,transientvariables)

...,其中“ id”是字符串,“ processVariables”是Java Map ,“ transientvariables”是Kotlin MutableMap

在这种情况下,如何指定答案返回单元测试?我尝试了以下方法

every { myService?.trigger(MY_ID,any(),any()) } returns unit

...但是运行单元测试时出现错误

io.mockk.MockKException: no answer found for: MyService(#2).trigger(MY_ID,{},{key=value})

在此先感谢您的帮助。

解决方法

可以编译并导致成功运行测试的一种解决方法是使用以下值填充地图:

val map = mapOf("Key" to "Value")
every { processInstance.processVariables } returns map

every { myService?.trigger(EXECUTION_ID,map,any()) } returns unit