遍历链接列表如下:-
LinkedList<Integer> ll = new LinkedList<Integer>();
Iterator<Integer> itr = ll.iterator();
while (itr.hasNext()) {
int val = itr.next();
}
问题是如何对这样的集合进行单元测试(例如:如果元素按顺序是1、2、3、4,则是单元测试用例,或者例如sortLinkedList函数等),其中唯一的循环方式是通过Iterator?此外,请不要给出涉及Guava的解决方案。
您可以这样做:
LinkedList<Integer> ll = new LinkedList<Integer>();
Iterator<Integer> itr = ll.iterator();
int i = 0;
int[] seq = {1, 2, 3, 4};
while (itr.hasNext()) {
int val = itr.next();
assertEquals(seq[i], val);
i++;
}
或者更简单,使用增强的for循环:
LinkedList<Integer> ll = new LinkedList<Integer>();
int i = 0;
int[] seq = {1, 2, 3, 4};
for (Integer val : ll) {
assertEquals(seq[i], val);
i++;
}
有几种可能性。您将无法创建一个可以像字符串或集合一样断言的对象。明确肯定
要做到这一点,您可以构建一个可以在测试中重用的辅助函数。
请查看这篇文章以了解断言集合。