如何在 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
的代码。
我正在尝试编写一个代码,它可以将我的迭代器的开头设置为特定索引,并且此方法必须创建并且 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
的代码。