gpt4 book ai didi

Mockito:如何在迭代列表时获取模拟对象?

转载 作者:行者123 更新时间:2023-12-04 02:31:49 25 4
gpt4 key购买 nike

@Mock
Object obj;

List<Obejct obj> objs;

当我遍历 objs 时如何获取模拟对象 obj?

最佳答案

代码:

@Mock
private Iterator<YourObject> iteratorMock;
//...
when(yourListMock.iterator()).thenReturn(iteratorMock);
when(iteratorMock.hasNext()).thenReturn(Boolean.TRUE, Boolean.TRUE,
Boolean.TRUE, Boolean.FALSE);
when(iteratorMock.next()).thenReturn(yourMock1, yourMock1, yourMock2);

正如您在代码中看到的,模拟迭代器是为第二次、第三次等调用返回不同模拟的一种非常方便的方法。

这样你也可以很容易地让第二个调用抛出异常,第三个调用再次工作,能够测试第二个调用的异常是否会被处理,第三个结果仍然会被处理。

使用真实列表是一种选择,但我认为 mocking 更强大,并且代码更浓缩为特定测试实际需要的内容。

关于Mockito:如何在迭代列表时获取模拟对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21436867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com