2013-08-07 81 views
0

我有一個測試,其僅包含此行:的Mockito拋出InvalidUseOfMatchersException而嘲笑的方法

when(service.getDTO(Matchers.<DatePeriod>any(), anyLong())).thenReturn(getMockedDTO); 

當我運行它引發以下錯誤測試:

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
Invalid use of argument matchers! 
1 matchers expected, 2 recorded. 

該方法的接口我嘲笑如下:

DTO getDTO(DatePeriod period, long id); 

我根本無法看到我在做什麼錯在這裏..希望有人可以指引我走向正確的方向! :)

+4

爲了更好地儘快提供幫助,將您的代碼發佈爲可顯示您問題的[SSCCE](http://www.sscce.org)。這允許用戶複製/粘貼並重現您的問題。 –

+3

如果您替換Matchers會發生什麼。 任何()'與'任何(DatePeriod.class)'? –

+1

乍一看,我看不出有什麼明顯的錯誤。仔細檢查getDTO是不是「最終」的 - 這些不能被Mockito嘲笑 - 並且它實際上不是前一個或後一個存根導致該錯誤。 –

回答

0

由於我的錯誤是PEBKAC和我解決它在我自己,我會回答我的問題

編輯

instead of mocking the dependant services and dao's I was trying to mock the very service i'm testing. I removed the line and mocked the other dependant services and now it seems to work as intended

(從Mockito throws InvalidUseOfMatchersException while mocking a method複製)

+1

爲了讓它成爲答案,您應該回答「鍵盤和椅子之間存在的問題」將成爲大多數問題的答案,如果這將是一個答案。 .. – bummi

+0

我已經做了答案.. http://stackoverflow.com/questions/18097757/mockito-throws-invaliduseofmatchersexception-while-mocking-a-method/20241651?noredirect=1#comment26533537_18097757 – Herter

+0

更新的答案後,以包括從評論中回答,以使讀者更清楚 – Herter