如何使用Mockito和Powermockito模拟JsonArray的迭代器方法

时间:2019-05-03 00:06:21

标签: java mockito powermockito

我想模拟JsonArray对象的迭代器功能。 JsonArray是一个自定义的最终类,其迭代器函数返回一个Iterator<JsonElement>。这是我尝试过的

JsonElement row = ["City1","Date1","Expense1"];
JsonArray jsonArray = row.getAsJsonArray();
final Iterator<JsonElement> iterator = jsonArray.iterator();
JsonElement entry = iterator.next();
if (entry == null || entry.isJsonNull()) {
    return null;
}

我想以使条目变为null的方式模拟迭代器。 这是我尝试过的方法,但是当我调试时,我看到迭代器仍然可以正常工作,好像没有被模拟一样。

Iterator iterator = Mockito.mock(Iterator.class);
PowerMockito.when(iterator.next()).thenReturn(null);

1 个答案:

答案 0 :(得分:1)

您要测试的方法能否以row作为参数? (看起来应该如此)

然后,您可以仅使用[null]来调用它,而不必嘲笑它。