在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中编写测试