我正在尝试为这段特定的代码创建一个 EasyMock,这样 innerfValue 的类型就是 IJavaValue,它是 IJavaObject 的子类。我已经尝试了通过模拟 innerfValue 然后只是假设 aJavaValue 指向 innerfValue 并模拟 sendmessage 方法来处理这个问题的传统方法,就好像它是 innerfValue 的方法一样,但它一直没有工作,当我到达当我这样做时,它给了我一个不兼容的返回值类型(在这种情况下,symbolvalue 是我在我的模拟 innerfValue 对象上调用 sendmessage 方法后返回的模拟对象,而不是作为另一段代码中的 symbolValue 的 saem ):
EasyMock.expect(((IJavaObject)symbolValue).toString()).andReturn("aValue");
这是一段代码
IJavaObject aJavaValue = (IJavaObject)innerfValue.getValue();
IJavaObject symbolValue = (IJavaObject) ((IJavaObject)aJavaValue).sendMessage(
"toString", "()Ljava/lang/String;", null, thread, false);
value = symbolValue.toString();