Мне нужно написать 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