2010-10-21 53 views
0

我有這樣的代碼在EasyMock期望調用上設置Eclipse斷點的最佳方式是什麼?

ClockService mockClockService = createMock(ClockService.class); 

Long timeFirstNodeCreated = new Date().getTime(); 
expect(mockClockService.getNow()).andReturn(timeFirstNodeCreated) ;   

Long timeFirstNodeDeleted = new Date().getTime(); 
expect(mockClockService.getNow()).andReturn(timeFirstNodeDeleted) ; 

我想Eclipse來中止程序的任何時間mockClockService.getNow()被調用。但是,由於ClockService是一個接口,我無法在ClockService.getNow()上設置斷點,並且由於mockClockService是EasyMock代理,所以我無法在預計行上設置斷點。

回答

0

我想你可以使用andAnswer(或andlelegateTo)方法來響應getNow()調用;你會寫一個IAnswer(或ClockService)的實現,並在你的實現中設置一個斷點。如:

expect(mockClockService.getNow()).andAnswer(new IAnswer<Long>() { 
    public Long answer() throws Throwable { 
     return WHATEVER_YOUR_WANT; // Put your breakpoint on this line 
    } 
}); 

應該這樣做。

但也許你想多說一些你爲什麼要這樣做?這表明你可能有設計問題...