在Java单元测试中模拟Kotlin类
我有Mockito的这个Java测试:
public class PersistentNodeDeserializerTests { @Test public void userInfoPersistentNodeDeserializer() { PersistentNode node = mock(PersistentNode.class); when(node.stringChild("username")).thenReturn("cliff12"); //more stuff } }
PersistentNode是一个Kotlin类:
open class PersistentNode(private val path: PersistentNodePath, val content: Any) { val stringPath: String get() = path.get() val key: String get() { val parts = stringPath.split("/"); return parts[parts.size - 1]; } val mapContent: Map<String, Any> get() { return content as HashMap<String, Any> } fun stringChild(child: String): String { return mapContent.get(child) as String } }
我得到这个错误:
kotlin.TypeCastException:null不能转换为非null类型的java.util.HashMap
我怎样才能正确地嘲笑属性stringChild
?
这个库可能会解决你的问题https://github.com/nhaarman/mockito-kotlin
编辑:对不起,没有意识到你正在使用Java测试。 如果这是一个选项,请尝试在kotlin中编写测试