gpt4 book ai didi

java - Junit 实现 Iterable

转载 作者:行者123 更新时间:2023-11-29 06:42:36 26 4
gpt4 key购买 nike

我正在尝试对实现 Iterable 的类进行测试。当我去测试迭代器类中的任何方法时,比如 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());

}

最佳答案

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

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

关于java - Junit 实现 Iterable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9761679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com