我正在尝试使用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((方法是静态的或最终的。因此,您不能嘲笑它。您可以尝试使用PowerMock(请参阅Mockito -0匹配器预期,1个记录(InvaliduseOfMatchersException((。