如何在 java 中为 ListIterator 编写 JUnit 测试以测试 listiterator 是否已设置为特定索引

How to write JUnit test for ListIterator in java to test if the listiterator has been set to a specific index

我正在尝试编写一个代码,它可以将我的迭代器的开头设置为特定索引,并且此方法必须创建并且 return 一个实现 ListIterator 的对象并且位于此链表中的index.

对应位置的节点

这是我写的方法,但我不知道如何编写Junit测试代码来测试我的方法,它总是显示Stack Over flow。该方法应该 return 一个从 index.

开始的 ListIterator

方法:

public ListIterator<E> listIterator(int index) {
    ListIterator <E> myIter = listIterator();
    if ( index < 0 || index > size) {
        throw new IndexOutOfBoundsException();
    }
    else {
        for ( int i = 0; i < index && myIter.hasNext(); i++) {
            myIter.next();
        }

    }
    return (ListIterator<E>) myIter;
}

JUnit 测试: public class KWLinkedListTest 扩展了测试用例{

private KWLinkedList <String> myList;

@Before
public void setUp() throws Exception {

    myList = new KWLinkedList<String>();
    myList.add("Top");
    myList.add("Mid");
    myList.add("Jg");
    myList.add("Sup");
    myList.add("Adc");
    ListIterator <String> myIter = myList.listIterator();


}

@Test
public void testlistiterator() {

    myList.listIterator(2);
    assertEquals(myList.next(),"Mid");
}

我 运行 难以使用您提供的代码在测试项目中重现您的问题。

ListIterator <E> myIter = listIterator(); 在没有必需参数的情况下调用自身。即使提供了参数,这也会导致无限递归/堆栈溢出。

size 是无法识别的符号。

缺少类型 KWLinkedList 的代码。