Как написать тест JUnit для ListIterator в Java, чтобы проверить, был ли для listiterator установлен определенный индекс - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь написать код, который может установить начало моего Итератора для определенного индекса, и этот метод должен создать и вернуть объект, который реализует ListIterator и находится в этом списке ссылок непосредственно перед узлом в местоположении, соответствующем индекс.

Вот метод, который я написал, но я не знаю, как написать тестовый код Junit для тестирования моего метода, он всегда будет показывать мне поток переполнения стека. Метод должен возвращать 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 test: открытый класс KWLinkedListTest расширяет TestCase {

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");
}

1 Ответ

0 голосов
/ 19 марта 2019

Я столкнулся с трудностями при воспроизведении вашей проблемы в тестовом проекте с использованием предоставленного вами кода.

ListIterator <E> myIter = listIterator(); вызывает себя без обязательного аргумента.Даже если аргумент был предоставлен, это привело бы к бесконечному переполнению рекурсии / стека.

size - нераспознанный символ.

Код для типа KWLinkedList отсутствует.

...