【发布时间】:2016-12-28 21:32:00
【问题描述】:
我不太了解 Kotlin 中的界面模拟。我不确定这是 Kotlin 特有的还是也适用于 java。到目前为止,我只在 Kotlin 中尝试过。
我有一个带接口的模拟类:
val mockObj = mock(MyClass::class.java, withSettings().extraInterfaces(IMyInterface::class.java)
现在,这会在 IntelliJ 中产生以下问题:
`when`(mockObj.someMethod()).thenReturn(0.1)
someMethod() 将是红色(我认为这取决于配色方案,但你明白了 - 一个问题:未解决的参考)
为了解决这个问题,我只是在它之前添加了这一行:
val mockInterface = mockObj as IMyInterface
mockInterface 将带有灰色波浪线下划线,因为它从未使用过。我仍然使用mockObj 作为when
但是,这会使 红色 消失
我不确定为什么会这样……有人能解释一下这个理论吗?
为了去掉灰色下划线,我删除了val mockInterface =
所以我的魔法线减少到mockObj as IMyInterface
【问题讨论】:
-
绝对清楚,我感到困惑的原因是因为我创建了一个我从未使用过的新变量 - 来解决问题......更令人困惑的是,我然后删除了作业的左手,它仍然有效!