【发布时间】:2020-05-12 04:56:27
【问题描述】:
我有以下代码
list.getnames().get(0).getFirstName();
代码中的这是动态的,因为当数据可用时会加载get(0)。我在 Junit 中为此编写测试,当我通过这样做来创建模拟时
when(list.getnames().get(0).getFirstName()).thenReturn(null);
然后,我得到错误:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
我知道这是因为此时没有值,因此它的大小为 0,但是模拟该字段的正确方法是什么,所以我可以创建我的测试?
【问题讨论】:
-
您还必须模拟列表。你可以使用 spy / mock list 来测试这个场景。另外,您能否添加更多信息,例如您正在编写的测试类型?清单上有什么?类型 ?等
-
您在模拟 getFirstName() 调用,但如果 getnames() 返回一个空列表怎么办?那是你的问题