Mockito Matchers任何地图

XXL*_*ser 3 java testing mockito

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

when(mockedService.patch("1", Matchers.<Map<String, Object>>any())).thenReturn(object);
Run Code Online (Sandbox Code Playgroud)

与:

when(mockedService.patch("1", anyMap())).thenReturn(object);
Run Code Online (Sandbox Code Playgroud)

但它返回:

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
Invalid use of argument matchers!
2 matchers expected, 1 recorded.
Run Code Online (Sandbox Code Playgroud)

它只适用于我放any(String.class):

when(mockedService.patch(any(String.class), Matchers.<Map<String, Object>>any())).thenReturn(object);
Run Code Online (Sandbox Code Playgroud)

但是我想要选择放置实际值而不是任何String

ysh*_*vit 8

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