如何在Spring Boot响应式Kotlin单元测试中Mock Try<Unit>返回类型?
如何Mock返回成功Try的Suspend函数
要返回包含成功结果的Try对象,根据你使用的Try类型(Kotlin标准库Result或Arrow-Kt的Try),选择对应的写法替换...:
情况1:使用Kotlin标准库的Result(Try为Result别名)
如果你的Try是Kotlin标准库Result的类型别名(因为runCatching默认返回Result),直接返回Result.success(Unit)即可:
coEvery { userService.upsertUser(any(), any(), any()) } returns Result.success(Unit)
情况2:使用Arrow-Kt的Try类型
如果项目使用Arrow-Kt库的Try类型,返回Try.success(Unit):
coEvery { userService.upsertUser(any(), any(), any()) } returns Try.success(Unit)
补充说明
因为你的函数返回Try<Unit>,成功场景下需要包裹Kotlin的Unit类型(表示无实际返回值),所以上述写法中传入Unit作为成功结果的内容即可匹配函数的返回类型。
内容的提问来源于stack exchange,提问作者mdyingstar
相关产品推荐
相关产品推荐

