2015-08-22 40 views
4

對不起,這樣一個基本的問題。我只是有點沮喪,爲什麼我不能爲我的生活配置一個thenReturn在我的模擬。在Eclipse單元測試視圖我得到這個故障跟蹤:基本thenReturn不在Eclipse中的Mockito中工作

org.mockito.exceptions.misusing.MissingMethodInvocationException: 
when() request an argument which has to be 'a mthod call on a mock'. 
For example: 
when(mock.getArticles()).thenReturn(articles); 

但這裏是我的代碼是真的只是一個簡單的POJO:

ConnectionDetails mockDetails = mock(ConnectionDetails.class); 
when(mockDetails.getHostName()).thenReturn("hello"); 
assertEquals("hello", mockDetails.getHostName()); 

這應該工作正常否?

這裏是失敗的痕跡: eclipse failure trace

方法聲明:

public final String getHostName() { 
    return hostName; 
} 

感謝您指出的問題是我的方法聲明中的「最後」。

+0

請您發佈完整的堆棧跟蹤? –

+0

@jean添加了失敗軌跡的圖像,我最近的事情是堆棧軌跡。 – simgineer

+2

你是否檢查過'getHostName'不是最終的? – Gavin

回答

1

Gavin解決的評論:

是否檢查的gethostname不是最後?

嘲笑的Mockito是代理(有效動態生成的子類)和標記方法final防止它們觸發的Mockito的覆蓋。因此,您的測試會調用真正的方法,而Mockito會提供MissingMethodInvocationException。

相關問題