我该如何模拟这种情况
ObjectOfBeanClass.getMapObject().get("String_Key_To_Return_Object")
我尝试以下方式:
1)
when(ObjectOfBeanClass.getMapObject()。get(“ String_Key_To_Return_Object”))。thenReturn(Object);
在这种情况下,它将引发异常,getMapObject()应该返回
一个Map_Object
2)
doReturn(Object).when(ObjectOfBeanClass.getMapObject())。thenReturn(Object);
在这种情况下,它显示以下错误
org.mockito.exceptions.misusing.UnfinishedStubbingException:
在此处检测到未完成的存根:
最佳答案
您可以分两步模拟整个地图和调用。
Map<String> map = mock(Map.class);
when(map.get(yourString)).thenReturn(object);
when(objectOfBeanClass.getMap()).thenReturn(map);
或者,如果
objectOfBeanClass
是您的测试对象,请致电objectOfBeanClass.setMap(map);
就像chrylis指出的那样,您也可以创建一个实际的
Map
实例,而不是对其进行模拟:Map<String> map = Collections.singletonMap("String_Key", object);
when(objectOfBeanClass.getMap()).thenReturn(map);
只要您不想将地图用于
verify()
之类的东西就可以了。