Я изучаю CS61B - UCB самостоятельно, и я новичок в использовании IntelliJ и Junit4.12.Я обнаружил, что нет никакого результата для my org.junit.Assert.assertArrayEquals()
![](https://i.stack.imgur.com/D01dR.png)
, хотя в видео есть что-то вроде этого
![](https://i.stack.imgur.com/c8nm4.png)
в окне запуска.
Вот код для TestSort.java
import static org.junit.Assert.*;
import org.junit.Test;
/** Tests the the Sort class. */
public class TestSort {
/** Test the Sort.sort method. */
@Test
public void testSort() {
String[] input = {"i", "have", "an", "egg"};
String[] expected = {"an", "egg", "have", "i"};
Sort.sort(input);
if (input != expected)
{
System.out.println("something wrong!");
}
org.junit.Assert.assertArrayEquals(expected, input);
}
@Test
public void testFindSmallest() {
String[] input = {"i", "have", "an", "egg"};
int expected = 2;
int actual = Sort.findSmallest(input, 0);
assertEquals(expected, actual);
String[] input2 = {"there", "are", "many", "pigs"};
int expected2 = 2;
int actual2 = Sort.findSmallest(input2, 2);
assertEquals(expected2, actual2);
}
@Test
public void testSwap() {
String[] input = {"i", "have", "an", "egg"};
int a = 0;
int b = 2;
String[] expected = {"an", "have", "i", "egg"};
Sort.swap(input, a, b);
assertArrayEquals(expected, input);
}
}
Здесьэто код для Sort.java
public class Sort {
public static void sort(String[] x) {
sort(x, 0);
}
private static void sort(String[] x, int start) {
if (start == x.length) {
return;
}
int smallestIndex = findSmallest(x, start);
swap(x, start, smallestIndex);
sort(x, start + 1);
}
public static void swap(String[] x, int a, int b) {
String temp = x[a];
x[a] = x[b];
x[b] = temp;
}
public static int findSmallest(String[] x, int start) {
int smallestIndex = start;
for (int i = start; i < x.length; i += 1) {
int cmp = x[i].compareTo(x[smallestIndex]);
if (cmp < 0) {
smallestIndex = i;
}
}
return smallestIndex;
}
}
Я думаю, что функция для Junit состоит в том, чтобы получить зеленую часть, которая показывает, как работают мои коды, и получить результат того, равны ли две мои строки илине.
Другой вопрос, касающийся IntelliJ, заключается в том, есть ли какая-либо разница между тем, как я запускаю его и использую терминал для его компиляции и работы?Потому что, когда я использую терминал, он будет показывать что-то вроде этого
введите описание изображения здесь
Я много гуглил по этому поводу, он всегда говорил, что я не применялJunit.jar в classpath.Я проверил, что я добавил библиотеку. введите описание изображения здесь
fyi, вы можете получить библиотеку здесь введите описание ссылки здесь
Я отладил функцию testSort, и она подходит для части ввода и части функций сортировки.в то время как он дает мне подсказку, что введите здесь описание изображения , я выбрал Загрузить, он показал источники, не найденные введите описание изображения здесь , а когда я выбрал источники из существующих файлов введитеописание изображения здесь , оно продолжает прикрепляться .... Как я могу решить эту проблему?