java - Mockito 匹配任何 map

标签 java testing mockito

如何在 mockito 中使用任何 map ?我尝试使用以下代码

when(mockedService.patch("1", Matchers.<Map<String, Object>>any())).thenReturn(object);

和:

when(mockedService.patch("1", anyMap())).thenReturn(object);

但它返回:

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

只有当我输入 any(String.class) 时它才有效:

when(mockedService.patch(any(String.class), Matchers.<Map<String, Object>>any())).thenReturn(object);

但我想选择输入实际值而不是任何字符串

最佳答案

您不能混用匹配器和非匹配器。代替 "1",使用 Matchers.eq("1") .这将创建一个匹配任何等于“1”的字符串的匹配器,它同时满足您的需求(等于“1”)和 Mockito 的(两个参数都是匹配器)。

关于java - Mockito 匹配任何 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27646362/

相关文章:

java - 如何创建一个 JUnit 测试,该测试在满足特定条件之前一直运行?

java - 使用 when + thenReturn 时 Mockito 和泛型问题

java - 如何处理算法?哪个是首选方式?

java - Swing 文本字段方向

testing - Groovy 断言脚本在 SoapUI 中执行两次

android - java.lang.RuntimeException : Method isEmpty in android. text.TextUtils 未模拟

java - 从模拟类调用方法时 Mockito : java. lang.NullPointerException

java - 使用 Maven 从 jar 运行我的 testNG 项目

java - 尝试在 finally 部分中捕获

java - 在 thenThrow 中将模拟类作为参数传递时出现 UnfinishedStubbingException