我有一個代碼,我想單元測試。該代碼使用Collections.sort
方法爲它提供我們自己的甜蜜比較類似:從集合中嘲笑排序方法
List<Something> something = somethingService.doSomething(someParameter);
Collections.sort(something, somethingComparator);
現在在測試我嘲諷somethingService
功能和捻熄doSomething
方法,如:
List<Something> mockList = Mockito.mock(List.class);
Mockito.when(somethingService.doSomething(anyInt())).thenReturn(mockList);
,我嘲笑該集合爲:
PowerMockito.mockStatic(Collections.class);
PowerMockito.doNothing().when(Collections.class, "sort", anyListOf(Something.class), anyOf(Comparator.class));
但它給我:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Misplaced argument matcher detected
You cannot use argument matchers outside of verification or stubbing.
現在我知道如果我們在函數的任何參數中使用參數匹配器,我們需要爲所有參數提供匹配器。但是,這樣做有可能做到這一點,如果沒有,那麼現有的解決方法是什麼?
@社區:請幫忙:) – Sourabh
這很奇怪。我遇到了同樣的問題。但這[類似的答案](http://stackoverflow.com/a/22991435/1594933)作品 – gontard
它看起來像一個錯誤。 – gontard