Junit implements Iterable



我正在尝试对实现Iterable的类进行测试。当我去测试itorator类中的任何方法时,比如hasNext()、next()。所以当我调用list.itorator().Next()时;什么都没有发生,该节点是列表中的当前节点,而不是下一个。但当我执行ListIterator时,itrList=新的ListIterater(list);里面的代码是有效的。我正在调用公共迭代器迭代器(){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());
}

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

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

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

相关内容

  • 没有找到相关文章

最新更新