4

innerfValue が IJavaObject のサブクラスである IJavaValue 型になるように、この特定のコードの EasyMock を作成しようとしています。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();
4

2 に答える 2

8

EasyMockはtoString()メソッドをモックできません。これが私が問題を抱えていた理由です。

于 2012-08-07T01:33:49.780 に答える