Как добавить некоторое значение в универсальной карте подстановки<?,?>

Я прошел через несколько связанных вопросов, но они не помогли мне. На самом деле, у меня есть метод, тип возвращаемого значения 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);
}
Другие вопросы по тегам