0
我用Easymock.createNiceMock
嘲笑了一個對象。使用easymock調用for循環中的模擬對象
MYRepository mockedMyRepository = EasyMock.createNiceMock(MyRepositoryWrapper.class);
EasyMock.expect(mockedRepository.findList(Asset.class, criteria)).andReturn(statusTypeList);
在測試類中我有一個for循環,其中我稱之爲findList
方法。它獲得第一個循環中的值,但是從下一個循環返回null
。
即使沒有循環,只有一次它返回我指定的值。
System.out.println("first"+this.myRepository.findList(Asset.class).get(0)); \\ returns the correct value
System.out.println("second"+this.myRepository.findList(Asset.class).get(0)); \\ returns null
這裏有什麼解決方法? 謝謝。
感謝它的工作!但我想如果我使用createNiceMock,那麼它不會造成問題,我可以多次調用它。我錯了嗎? – Sara 2012-07-24 00:09:27
請參閱這裏的「不錯的嘲笑」http://www.easymock.org/EasyMock3_0_Documentation.html。如果你沒有設置任何期望,一個很好的模擬會爲它的所有方法獲取默認行爲。默認行爲是返回false,零或null,並允許您調用任意次數。但是,通過設置期望值,您已經覆蓋了此方法的默認值。該期望包括預期的呼叫數量(默認爲一次呼叫)。 – 2012-07-24 00:13:35
哦好吧,非常感謝:)。 – Sara 2012-07-24 00:15:28