gpt4 book ai didi

hashmap - Mockito 和 Mockito.any(Map.class)

转载 作者:行者123 更新时间:2023-12-04 06:57:13 28 4
gpt4 key购买 nike

使用 Mockito 我遇到了以下问题:

Mockito.when(restOperationMock.exchange(
Mockito.anyString(),
Mockito.any(HttpMethod.class),
Mockito.any(HttpEntity.class),
Mockito.eq(CustomerResponse.class),
**Mockito.anyMap()**)).
thenReturn(re);

问题是该方法没有被拦截,因为我使用的是 Mockito.any(Map.class) 而不是 Mockito.anyMap() 并且我将 HashMap 作为参数传递。 Mockito.any(Map.class)Mockito.anyMap() 之间有什么区别?

最佳答案

any(Map.class) 之间只有一点点区别和 anyMap() : 从 Mockito 2.0 开始, Mockito 将处理 any(Map.class)来电表示isA(Map.class)而不是完全忽略参数。 (见 Mockito 贡献者 Brice 在 this SO answer 上的评论。)因为 restOperationMock.exchange takes an Object vararg ,您可能需要anyMap捕获传递非 Map 对象或根本没有传递对象的情况。

(我之前将其作为“虚拟值”返回,Mockito 可以返回一个空 Map 来调用 anyMap() ,但只能返回 null 来调用 any(Map.class) 。如果 restOperationMock.exchange 代表 stub 期间的真实实现,例如,如果它是 spy 或不可模拟的方法( final方法,最终类上的方法等),那么该虚拟值可以在实际代码中使用。然而,这仅适用于 any()anyMap()any(Map.class) 都为 Mockito 提供了足够的信息来返回一个虚拟 Map 实现,其中 any() 已删除其泛型并且只知道返回 null 。)

关于hashmap - Mockito 和 Mockito.any(Map.class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35437077/

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