0

遍历链表是这样的: -

    LinkedList<Integer> ll = new LinkedList<Integer>();
    Iterator<Integer> itr = ll.iterator();
    while (itr.hasNext()) {
        int val = itr.next();
    }

问题是如何进行单元测试(例如:如果元素依次是 1、2、3、4 是单元测试用例,或者例如 sortLinkedList 函数等)这样的集合,其中唯一的循环方式是通过 Iterator ?也请不要提供涉及番石榴的解决方案。

4

2 回答 2

0

有几种可能。您将无法绕过创建可以像字符串或集合一样断言的对象。断言。

为此,您可以构建一个可以在测试中重用的辅助函数。

检查这篇文章断言集合

于 2013-09-02T21:19:38.437 回答
0

你可以这样做:

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++;
}
于 2013-09-02T21:27:15.963 回答