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

时间:2019-05-12 03:57:40

标签: kotlin mockk

因此,在我正在测试的服务中,我有一个依赖服务,该服务正在获取对象并对其进行一些扩充。我想模拟依赖服务正在执行的部分,并让模拟返回恰好它所接收的内容。问题是我无权访问。

我尝试过这样的事情:

  val captureMyObject = slot<MyObject>()
  every { serviceX.doSomething(capture(captureMyObject)) } 
  returns captureMyObject.captured

但是它失败,并显示:kotlin.UninitializedPropertyAccessException: lateinit property captured has not been initialized

1 个答案:

答案 0 :(得分:0)

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

val captureMyObject = slot<MyObject>()
every { serviceX.doSomething(capture(captureMyObject)) } answers {captureMyObject.captured}