Kotlin 如何捕获传递给模拟函数的参数并返回它?

Kotlin 如何捕获传递给模拟函数的参数并返回它?,kotlin,mockk,Kotlin,Mockk,所以在我正在测试的服务中,我有一个依赖的服务,它接受一个对象并对其进行一些扩充。我想模拟依赖服务正在执行的部分,并使模拟返回与它接收的完全相同。问题是我无法访问它 我试过这样的方法: val captureMyObject = slot<MyObject>() every { serviceX.doSomething(capture(captureMyObject)) } returns captureMyObject.captured val captureMObj

所以在我正在测试的服务中,我有一个依赖的服务,它接受一个对象并对其进行一些扩充。我想模拟依赖服务正在执行的部分,并使模拟返回与它接收的完全相同。问题是我无法访问它

我试过这样的方法:

  val captureMyObject = slot<MyObject>()
  every { serviceX.doSomething(capture(captureMyObject)) } 
  returns captureMyObject.captured
val captureMObject=slot()
每{serviceX.doSomething(capture(captureMObject))}
返回CaptureMObject.captured

但是它失败了:
kotlin.UninitializedPropertyAccessException:lateinit属性捕获尚未初始化

在oleksiyp注释之后,我重新阅读了文档。正确的方法是:

val captureMyObject = slot<MyObject>()
every { serviceX.doSomething(capture(captureMyObject)) } answers {captureMyObject.captured}
val captureMObject=slot()
每个{serviceX.doSomething(capture(captureMoObject))}回答{captureMoObject.capture}

您的
每一个
都没有完成,请检查文档感谢您花时间回答您的问题。你解决了我的问题。你应该接受你的答案。