gpt4 book ai didi

java - Mockito 使用 ArgumentCaptor 抛出 InvalidUseOfMatchersException

转载 作者:行者123 更新时间:2023-11-30 02:33:13 27 4
gpt4 key购买 nike

我正在尝试使用mockito的ArgumentCaptor类来捕获一些参数,然后对其进行一些验证。但它抛出了一个异常。

这就是打印的错误消息。

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

下面是抛出异常的代码。

    //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 方法是在抽象类中定义的,该抽象类将我试图捕获的 Argument 的基类作为参数。

最佳答案

save() 方法是静态的或最终的。因此,你不能 mock 它。您可以尝试改用 PowerMock(请参阅 Mockito - 0 Matchers Expected, 1 Recorded (InvalidUseOfMatchersException))。

关于java - Mockito 使用 ArgumentCaptor 抛出 InvalidUseOfMatchersException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43766864/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com