gpt4 book ai didi

java - 如何使用 ArgumentMatchers 告诉 Mockito 任何队列?

转载 作者:行者123 更新时间:2023-12-02 01:59:25 28 4
gpt4 key购买 nike

我正在尝试模拟以下方法:

@Override
public void handleStorage(TradeItem tradeItem,
ProductImagesMap productImagesMap,
List<Integer> indicesToProcess,
int countProductImages,
Queue<EcomImageMetadata> ecomImageMetadataQueue,
ImageServiceType imageServiceType,
ProductImageDTO productImageDTO) throws IllegalAccessException {

这就是我正在尝试的方法:

import static org.mockito.ArgumentMatchers.*;

final Class<Integer> integerClazz = Integer.class;
final Class<EcomImageMetadata> ecomImageMetadataClazz = EcomImageMetadata.class;
Mockito.when(productImageStorageService.handleStorage(eq(mockTradeItem), eq(productImagesMap), anyListOf(integerClazz), anyInt(), anyIterableOf(ecomImageMetadataClazz), anyObject(), anyObject()))
.thenReturn(null);

我不明白为什么 anyListOf(integerClazz) 有效,但 anyIterableOf(ecomImageMetadataClazz) 会导致:

Error:(157, 152) java: incompatible types: no instance(s) of type variable(s) T exist so that java.lang.Iterable<T> conforms to java.util.Queue<org.gs1ca.dar.domain.EcomImageMetadata>

如何匹配队列?

最佳答案

使用参数匹配器的通用版本ArgumentMatchers.any()。在 Java 7 之前的版本中,您需要像这样指定类型:

ArgumentMatchers.<Queue<EcomImageMetadata>>any()

如果您使用的是 java 8+,只需使用:ArgumentMatchers.any()

关于java - 如何使用 ArgumentMatchers 告诉 Mockito 任何队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51866496/

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