Junit实现了Iterable

时间:2012-03-18 19:50:05

标签: java junit linked-list iterable

我正在尝试对实现Iterable的类进行测试。当我去测试任何方法时,在itorator类中,如hasNext(),next()。所以当我调用list.itorator()。Next();没有任何反应,节点是列表中的当前节点而不是下一个节点。但是当我做ListIterator时itrList = new ListIterator(list);里面的代码有效。我正在调用public Iterator iterator(){return new ListIterator(this); 那我在做什么不正确/抓? 谢谢你的帮助。

public void test6() {
    List<String> list = new List<String>();

    list.addAfterCurrent("1");
    list.addAfterCurrent("2");
    list.addAfterCurrent("3");
    ListIterator itrList = new ListIterator(list);


    TextIO.putln(list.iterator().next()); // output is 1
    TextIO.putln(list.iterator().next()); // output is 1 
    TextIO.putln(itrList.next());         // output is 1
    TextIO.putln(itrList.next());         // now output is 2           
    assertEquals("1", list.getCurrent());
    assertEquals(3, list.size());

}

2 个答案:

答案 0 :(得分:7)

每次拨打list.iterator()时,您都在创建一个新的迭代器。您希望保持相同的迭代器并多次调用其next方法,例如

Iterator itr = list.iterator();
assertEquals(1, itr.next());
assertEquals(2, itr.next());

答案 1 :(得分:0)

您每次都在创建一个新的迭代器,并从头开始。