Easymock不兼容的返回值类型错误

时间:2012-07-30 18:55:00

标签: java unit-testing junit easymock

我正在尝试为这段特殊代码创建一个EasyMock,这样innerfValue的类型为IJavaValue,它是IJavaObject的子类。我试过通过模拟innerfValue然后只是假设aJavaValue指向innerfValue并模拟sendmessage方法就好像它是一个innerfValue的方法一样来处理这个问题的常规方法,但是它还没有工作,当我到达当我这样做时,它给了我一个不兼容的返回值类型(在这种情况下,symbolvalue是我在模拟innerfValue对象上调用sendmessage方法后返回的模拟对象,而不是另一段代码中的symbolValue。 ):

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();

2 个答案:

答案 0 :(得分:7)

EasyMock无法模拟toString()方法。这就是我遇到这个问题的原因。

答案 1 :(得分:0)

我知道我的问题在哪里。

如果您使用的是EasyMock.createMockBuilder(XXX.class)

确保你记得addMockedMethod(“methodName”)。createMock();