JUnit для тестирования реверсии односвязного списка - PullRequest
0 голосов
/ 06 января 2019

Мне нужно написать JUnits для проверки обратного метода односвязного списка. Это код, который у меня есть для списка ссылок

 class ReversedLinkedList { 

   static Node head; 

   static class Node { 

    int data; 
    Node next; 

    Node(int d) { 
        data = d; 
        next = null; 
     } 
  } 

/* Function to reverse the linked list */
Node reverse(Node node) { 
    Node prev = null; 
    Node current = node; 
    Node next = null; 
    while (current != null) { 
        next = current.next; 
        current.next = prev; 
        prev = current; 
        current = next; 
    } 
    node = prev; 
    return node; 
  } 

  // prints content of double linked list 
  void printList(Node node) { 
    while (node != null) { 
        System.out.print(node.data + " "); 
        node = node.next; 
    } 
  } 

    public static void run(ReverseLinkedList list, Node head) {
   head = list.reverse(head);
   list.printList(head);
   }
public static void main(String[] args) { 
    ReverseLinkedList list = new ReverseLinkedList(); 
    list.head = new Node(85); 
    list.head.next = new Node(15); 
    list.head.next.next = new Node(4); 
    list.head.next.next.next = new Node(20);
    run(list, head);
    }
  } 

Теперь я хочу сделать JUnits для проверки метода reverse , но я не уверен, как мне это сделать. Должен ли я как-то рефакторинг кода, чтобы добиться этого? Пока это то, что есть в моем тестовом классе:

 import static org.junit.jupiter.api.Assertions.*;

 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;

 import ReverseLinkedList.Node;

class ReverseLinkedListTest {

@BeforeEach
void setUp() throws Exception {
}

@Test
void testReversion() {
    ReverseLinkedList list = new ReverseLinkedList(); 
    list.head = new Node(85); 
    list.head.next = new Node(15); 
    list.head.next.next = new Node(4); 
    list.head.next.next.next = new Node(20); 

} }

Но мой тестовый класс даже не компилируется, я получаю следующую ошибку:

    Multiple markers at this line
   - Node cannot be resolved to a type
   - The static field ReverseLinkedList.head should be accessed in a 
     static way
...