【发布时间】:2019-10-11 04:29:22
【问题描述】:
尝试模拟时得到 NullPointerException Aggregations.getAsMap()
我已经尝试过使用 PowerMockito.doReturn(map).when(aggs).getAsMap() 的其他不同方法,但仍然面临同样的问题
@PrepareForTest(Aggregations.class)
public class TestExample extends PowerMockTestCase {
@Test
public void testMyMethod() {
Aggregations aggs = PowerMockito.mock(Aggregations.class);
Cardinality cardinality = Mockito.mock(Cardinality.class);
Map<String, Aggregation> map = new HashMap<String, Aggregation>();
map.put("sample", cardinality);
Mockito.when(aggs.getAsMap()).thenReturn(map);
}
}
Mockito.when(aggs.getAsMap()).thenReturn(map);
当调试 aggs 值包含以下值时
{Aggregations$MockitoMock$485838759@3084} Method threw 'java.lang.NullPointerException' exception. Cannot evaluate org.elasticsearch.search.aggregations.Aggregations$MockitoMock$485838759.toString()
使用 testng 及以下版本的 jars
powermock-api-mockito-2.0.2.jar
mockito-core-2.23.0.jar
【问题讨论】:
-
试试
PowerMockito.when(aggs.getAsMap()).thenReturn(map);。 Mockito 似乎无法模拟final方法。
标签: java elasticsearch mockito testng powermockito