NullPointerException
происходит от вызова метода getAsMap
.
Использование Mockito.doReturn(map).when(aggs).getAsMap();
вместо этого должно решить эту проблему.
Однако, похоже, есть ошибка в PowerMockito
, так как ее запись не должна вызывать вызов метода getAsMap()
(который все еще происходит).
Я предлагаю вамсоздайте заявку на ошибку в их bugtracker для этой проблемы.
Если вы включите окончательный макет для Mockito
(см. здесь ), выполнение теста прошло успешно.
@RunWith(MockitoJUnitRunner.class)
public class TestExample {
@Test
public void testMyMethod() {
Aggregations aggs = Mockito.mock(Aggregations.class);
Cardinality cardinality = Mockito.mock(Cardinality.class);
Map<String, Aggregation> map = new HashMap<String, Aggregation>();
map.put("sample", cardinality);
Mockito.doReturn(map).when(aggs).getAsMap();
Assert.assertEquals(map, aggs.getAsMap());
}
}
Другой вариант может заключаться в работе с реальным Aggregations
объектом вместо:
@Test
public void testMyMethod() {
Cardinality cardinality = Mockito.mock(Cardinality.class);
Mockito.when(cardinality.getName()).thenReturn("sample");
List<Aggregation> list = new ArrayList<>();
list.add(cardinality);
Aggregations aggs = new Aggregations(list);
Map<String, Aggregation> map = aggs.getAsMap();
Assert.assertEquals(1, map.size());
Assert.assertEquals(cardinality, map.get("sample"));
}