如何用mock来模拟密封类?

Spa*_*ron 5 android mocking kotlin mockk

我试图模拟一个密封类,它看起来像这样:

sealed class Location

class Home: Location{
    val name = "Home"
}
Run Code Online (Sandbox Code Playgroud)

我希望能够执行以下操作:

val mockHome = mockk<Home>() {
    every { name } answers { "My Home" }
}
Run Code Online (Sandbox Code Playgroud)

但不幸的是,当我运行它时,它失败并出现以下错误:

io.mockk.MockKException:每个 { ... } 块内缺少调用。

我究竟做错了什么?

小智 1

现在你还不能。但这个问题已在本PR中得到解决,我们正在等待 Mockk 的下一个版本。您可以追踪此 PR 以获取更多信息