Обратите внимание, что я новичок
Я пытаюсь написать набор тестов для следующего кода:
int binarySearch(Comparable[] objArray, Comparable searchObj) {
int low = 0;
int high = objArray.length - 1;
int mid = 0;
//iterative binary search algorithm
while (low <= high) {
mid = (low + high) / 2;
if (objArray[mid].compareTo(searchObj) < 0) {
low = mid + 1;
} else if (objArray[mid].compareTo(searchObj) > 0) {
high = mid - 1;
} else {
return mid;
}
}
//return target index position
if (objArray[mid].compareTo(searchObj) > 0) {
return mid;
} else
return mid + 1;
}
@Test
public void testBinarySearch() {
//Test for lower boundary of array
BinarySearch ob = new BinarySearch();
Comparable[] array = {10, 20, 30, 40, 50};
int result = ob.binarySearch(array, 5);
System.out.println("Index position should return 0. Result is: " + result);
}
Как вы можете видеть Я написал логи c для моего первого теста, и он возвращает правильный результат. Тем не менее, я не могу понять, как переписать его как тест JUnit таким образом, чтобы я мог также написать дополнительные тесты (такие как тест верхней границы массива).
Я не уверен, Я должен использовать Assert или assertArrayEquals. Я никогда не использовал JUnit раньше и, возможно, пропускаю что-то относительно простое.