Как добавить некоторое значение в универсальной карте подстановки<?,?>
Я прошел через несколько связанных вопросов, но они не помогли мне. На самом деле, у меня есть метод, тип возвращаемого значения Map<?,?>
и я хочу сделать модульное тестирование с использованием Mockito. Пример кода:
Map<?, ?> resultMap = dataServiceMapper.getData(serviceContext, requestData.getId());
и я хочу издеваться над этим:
dataServiceMapper.getData(serviceContext, requestData.getId()):
Код издевательства это:
Mockito.when(mapperMock.getData(any(ServiceContext.class), anyString())).thenReturn(value).
По значению, если я возвращаю карту нормалей со строкой, то возникает ошибка времени компиляции, за исключением нуля (согласно документации).
Но я хочу добавить некоторые данные, такие как String, чтобы после получения насмешливых картографических данных я мог продолжить работу.
1 ответ
Чтобы издеваться над методом, все, что вам нужно сделать, это передать Map
без универсального типа. В любом случае обобщенные элементы удаляются после компиляции, и все, что вы делаете, это пишете тест, поэтому реализация, аналогичная приведенной ниже, должна работать:
//Actual method
public Map<?, ?> getData(String input){
return null;
}
//Test
public void test() {
Test2 t2 = Mockito.mock(Test2.class);
Map result = new HashMap();
Mockito.when(t2.getData(Mockito.anyString())).thenReturn(result);
}