1
我想用mockito的ArgumentCaptor
類來捕獲一些參數,然後對它做一些驗證。但它拋出了一個例外。Mockito拋出InvalidUseOfMatchersException與ArgumentCaptor
這是打印的錯誤信息。
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 參數匹配器的使用無效! 0 matchers expected,1 records:
下面是拋出異常的代碼。
//Arrange
int amount = 100;
DonationTransaction transaction = getPendingTransaction(player, amount);
when(mockDonationTransactionDAO.getPendingTransactions(player)).thenReturn(Arrays.asList(transaction));
ArgumentCaptor<DonationAttribution> argumentCaptor = ArgumentCaptor.forClass(DonationAttribution.class);
//Act
donationService.applyPendingDonations(player, playerDTO);
//Assert
verify(mockDonationAttributionDAO).save(argumentCaptor.capture()); //Exception here
...
我正在使用Junit5和mockito版本2.7.22。
不知道我是否在這裏丟失了一些明顯的東西。
我的DonationAttributeDao擴展了一個抽象DAO,如果這對任何事情都有幫助,並且save方法在抽象類中定義,那麼抽象類需要將參數作爲參數來捕獲我想要捕獲的參數。
'donationAttributionDAO'是一個模擬嗎? –
是的。這是一個模擬。我會編輯我的問題,使其更清晰。 – Sneh
save()方法是抽象還是最終的?在這種情況下,你不能嘲笑它使用Mockito,你會得到各自的異常:http://stackoverflow.com/questions/11458963/mockito-0-matchers-expected-1-recorded-invaliduseofmatchersexception –