我要檢查它是否使用了EasyMock的andReturn方法具有相同的值返回測試靜態函數。不幸的是,我遇到與"java.lang.IllegalStateException
:失蹤行爲定義爲前面的方法調用:」當我使用了EasyMock我想這是不可能通過EasyMock的測試,當我試圖想到方法,你會明白問題的代碼更好是否有可能通過EasyMock的
問候 的Alper
Menu menu = EasyMock.createMock(Menu.class)
menu.setName("name");
EasyMock.expect(XmlParseUtility.createLinesToParse(menu).toString()).andReturn(angularLines.toString());
錯誤消息:
java.lang.IllegalStateException: missing behavior definition for the preceding method call:
Menu.getName()
Usage is: expect(a.foo()).andXXX()
這不是錯誤是什麼。 EasyMock遇到了一個你沒有告訴它的方法調用。由於它是如何工作的,它會在發生這種情況時產生異常。有兩種解決方案:1.告訴圖書館它應該期望被調用的每種方法。 2.切換到允許意外方法調用的模擬庫。 –
如果你的意思是 「EasyMock.expect(menu.getName())等於(」 名稱 「);」,我已經做到了。切換到嘲笑圖書館普羅霍羅夫,你是什麼意思?你可以給我一個例子嗎 ? – user2307786
我的意思是不同的嘲笑庫是全部。例如,Mockito或Spock。 EasyMock是一個「嚴格」的嘲笑庫,它會讓你提供所有可能的方法被模擬調用。這可能會用你無意測試的有效無意義的東西來稀釋你的測試(儘管實際效果會逐個改變,有時候你想要這樣嚴格)。 Mockito是一個「寬鬆」的嘲諷庫,它會忽略意想不到的方法調用。 –