unit-testing - Mockk:无法为方法调用指定答案
问题描述
我的 Kotlin 类中有以下方法调用:
myService.trigger(id, processVariables, transientVariables)
... 其中“id”是一个字符串,“processVariables”是一个 Java Map<String, Object>,“transientVariables”是一个 Kotlin MutableMap<String, Any>。
在这种情况下,如何在单元测试中指定返回的答案?我尝试了以下方法:
every { myService?.trigger(MY_ID, any(), any()) } returns unit
...但是当单元测试运行时出现错误:
io.mockk.MockKException: no answer found for: MyService(#2).trigger(MY_ID, {}, {key=value})
提前感谢您的任何帮助。
解决方案
可以编译并导致成功测试运行的解决方法是使用值填充 Map:
val map = mapOf("Key" to "Value")
every { processInstance.processVariables } returns map
every { myService?.trigger(EXECUTION_ID, map, any()) } returns unit
推荐阅读
- python - 在 python 中导入 VLC 模块时出现属性错误
- r - 删除有条件的重复项
- java - 为什么这个消费者抱怨编译时错误?
- tensorflow - 在 Tensorflow 中 GPU 的工作速度比 CPU 慢,为什么?
- java - 如何在 JavaFX 中为网页加载过程制作进度条?
- javascript - 我需要在一个网页中制作多个模式
- android - 地理定位器出错:如果我在 pubspec.yaml 文件中添加 ^3.0.0,则无法构建 android 应用程序
- sql - SQL 父子和继承
- excel - Characters.FontStyle 不适用于具有自定义数字格式的单元格
- jquery - 如何在页面回发时停止 JQgrid 刷新或重新加载,并且 jggrid 应该保持不变