我想爲這段特定的代碼創建一個EasyMock,例如innerfValue是IJavaValue類型,它是IJavaObject的子類。我已經嘗試了通過嘲諷innerfValue來處理這個問題的常規方法,然後假設aJavaValue指向innerfValue並嘲弄sendmessage方法,就好像它是innerfValue的一個方法一樣,但是它並沒有工作,並且當我到達結束它給我一個不兼容的返回值類型,當我這樣做(在這種情況下,符號值是一個模擬對象,我在我的模擬innerfValue對象上調用sendmessage方法後返回,而不是作爲另一部分代碼中的symbolValue的saem ):Easymock不兼容的返回值類型錯誤
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();
1)你不需要在你的單元測試中投入期望。模擬'symbolValue'應該已經有'toString'方法。 – DoctorRuss 2012-07-31 08:24:00
2)它現在的工作方式是什麼? 「不兼容的返回值類型」:這是否意味着它會返回一個值,但不是您想要的值?或者它沒有返回任何值? – DoctorRuss 2012-07-31 08:25:09
在我的junit失敗追蹤中,它聲明「java.lang.illegalStateException:不兼容的返回值類型」。至於什麼錯誤實際上,我不是100%確定。我想這是我的問題。 – KWJ2104 2012-07-31 16:41:36