我正在尝试使用mockito的ArgumentCaptor
类来捕获一些参数,然后对其进行一些验证。但这是一个例外。
这是打印为错误消息的内容。
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 参数匹配器的使用无效! 0匹配预期,1记录:
以下是抛出异常的代码。
//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。
不确定我是否遗漏了一些明显的东西。
我的DonationAttributionDao扩展了一个抽象的DAO,如果它对任何事情有帮助,并且在抽象类中定义了save方法,它将参数作为我试图捕获的参数的基类。
答案 0 :(得分:2)
save()方法是静态的或最终的。因此,你不能嘲笑它。您可以尝试使用PowerMock(请参阅Mockito - 0 Matchers Expected, 1 Recorded (InvalidUseOfMatchersException))。